Centos7.2搭建Lamp
今天记录下搭建Lamp的过程(有错请指出,谢谢!!)
环境说明:
- 使用的是阿里云的ECS,系统为Centos7.2
- 搭建Lamp线上环境(linux + apache2 + mysql + php5.6)
- 安装git进行代码的拉取
Apachede 搭建
1.查看httpd包是否可用
yum list | grep httpd
2.安装httpd(apache)
yum install httpd
3.启动
说句题外话:历史上的linux普遍都使用init进程(不感兴趣可以跳过)
也就是我们常说的:
$ sudo /etc/init.d/httpd start
# 或者
$ service httpd start
据我所知道:init(初始化检查)linux第一个启动的进程,所有的进程都是他的子孙;而且他是串行工作的,所以传统的这种模式会有2个致命的缺点:
1.是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
2.是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。
所以后面出现了一种新的技术systemd来代替;好像centos7 系统就开始默认用这个了
详细以后我们再聊
语归正传
我们要做的是 下面的启动并设为开机启动即可
3.1 启动apache2
systemctl start httpd
3.2 查看apache2状态
systemctl status httpd
3.3 停止apache2
systemctl stop httpd
3.4 重启apache2
systemctl restart httpd
3.5 设为开机启动
systemctl enable httpd.service
Mysql搭建
1.安装Mysql的源(官网的)
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2.安装Mysql(官网的)
yum install mysql-community-server
3.启动Mysql
systemctl start mysqld
4.查看默认密码
grep 'temporary password' /var/log/mysqld.log
2017-12-12T09:19:51.358192Z 1 [Note] A temporary password is generated for root@localhost: ;+2e9;VUlwi4
冒号后面的就是初始化密码
5.重置密码(不具体说明,不懂Google)
使用密码登录mysql
mysal -h localhost -u root -p
;+2e9;VUlwi4
重置密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
# 如果是当前登陆用户用
SET PASSWORD = PASSWORD('newpassword')
创建一个用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password'
用户只读权限
GRANT SELECT ON *.* TO 'pig'@'%';
PHP的安装
我这使用的是php5.6,不同版本的php安装也是大同小异
1.下载源码包
官网地址: http://php.net/downloads.php
选择合适的php版本进行下在:
你可以选线下在,然后ftp上传到对应的服务器;也可以在服务器上使用wget下载;
显然没必要多此一举,我选择的是后者(wget),前者适用于在官网或源网站找不到对应的源码包;
wget http://php.net/get/php-5.6.32.tar.gz/from/this/mirror
2.解压
源码包下载完成!
注意:因为我这是用wget在官网上下载;下载包明为:mirror;我先重命名为php.tar.gz;方便解压
cp mirror php.tar.gz
tar -zxvf php.tar.gz
解压完成
cd php-5.6.32
3.安装一些必要的依赖
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
4.安装gcc
yum install gcc
5.安装其他配件
yum -y install libxslt-devel*
yum -y install perl*
yum -y install httpd-devel
find / -name apxs 得到的路径是:/usr/bin/apxs
于是得到--with-apsx2的路径是/usr/bin/apxs
6.配置(php扩展安装哪些)
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs
7.编译安装
make
make install
8.添加环境变量
vim /etc/profile
在末尾处加上:
PATH=$PATH:/usr/local/php/bin
export PATH
重新加载文件,使修改立刻生效
source /etc/profile
9.查看版本信息
php -v
如果能看的php的版本信息 就是完成了!
10.生成必要文件
cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/php-fpm /usr/local/php/etc/php-fpm
cp /usr/local/phpetc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
下面那个是 php7才有,具体作用自行google吧
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
到此 软件已经安装完毕!
配置
下面的配置照抄就好,不在本次探讨其含义和作用
找到:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
后面追加
php5.6版本
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
搜索有没有下面这一行(省略号代表的是libphp5.so模块的绝对路径)
LoadModule php5_module ...
如果没有加上(我的有)
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
配置默认打开页面
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
到此其实已经 完成了lamp的搭建了
当然我有些强迫症,我喜欢将每个虚拟主机配置文件独立成一个对应的文件,放在一个统一的文件夹里面(没有这样的需求的小伙伴,可以忽略我下面的内容。。。)
独立虚拟主机配置
编辑httpd.conf文件
vim /etc/httpd/conf/httpd.conf
搜索(通常是末尾)
IncludeOptional conf.d/*.conf
在后面加上
IncludeOptional vhost/*
然后在 /etc/httpd下创建 vhost目录,配置文件丢里面
<VirtualHost *:80>
DocumentRoot /home/www/XXX
ServerName XXX.XXX.com
<Directory "/home/www/XXX">
Options -Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>