LAMP环境中PHP是作为apache的模块安装的,所以安装顺序是PHP放在apache的后面安装,这样便于安装PHP时可以在apache的模块目录生成对应的PHP模块。
apache版本:2.4.37
MysqL版本:5.7.24
PHP版本:7.3.0
注意:这里是使用的root用户安装,如果是其他用户,相应的操作前需要加上sudo。
1、安装apache
需要安装的依赖 apr、apt-util、pcre,pcre是一个正则表达式库,apache在路由匹配和路由重写时需要用到。
注意:这里不要使用pcre2,否则编译apache时会报错。
下载软件源码压缩包并解压
cd /usr/local/src wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz tar -zxvf httpd-2.4.37.tar.gz tar -zxvf apr-1.6.5.tar.gz tar -zxvf apr-util-1.6.1.tar.gz tar -zxvf pcre-8.42.tar.gz
将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中
将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中
mv apr-1.6.5 httpd-2.4.37/srclib/apr mv apr-util-1.6.1 httpd-2.4.37/srclib/apr-util
编译安装pcre
cd pcre-8.42 ./configure --prefix=/usr/local/pcre-8.42 make && make install
编译安装apache
cd /usr/local/src/httpd-2.4.37 ./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre-8.42 --with-included-apr make && make install
注:如果make过程报 fatal error: expat.h: No such file or directory,运行 yum install -y expat-devel 安装expat,然后重新执行以上操作,如果还报错,先执行make distclean后重新执行以上操作。
启动apache
/usr/local/apache/bin/apachectl start
这里会出现错误提示信息,是因为没有配置虚拟主机的缘故,这里忽略它。
在浏览器中访问本机ip,如果是虚拟机则需要使用虚拟机的ip地址
显示It works! 代表启动成功,apache安装完成。
2、安装MysqL
准备工作(安装依赖、新建用户和目录)
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper groupadd MysqL useradd -s /sbin/nologin -g MysqL MysqL mkdir -p /home/MysqL/{data,log} mkdir /home/MysqL/log/error.log chown -R MysqL:MysqL /home/MysqL
下载并解压MysqL源码压缩包
cd /usr/local/src wget https://dev.MysqL.com/get/Downloads/MysqL-5.7/MysqL-5.7.24.tar.gz tar -zxvf MysqL-5.7.24.tar.gz
进入MysqL源码包目录
cd /usr/local/src/MysqL-5.7.24
执行cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/home/MysqL/data -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
执行make
make
这里需要等待很长的时间,可能由于电脑性能和在虚拟机里面的原因,我这里等了将近三个小时,然后安装
make install
安装完成后将MysqL的bin目录加入环境变量
echo "export PATH=$PATH:/usr/local/MysqL/bin" >> /etc/profile source /etc/profile
接下来初始化数据库数据目录
注意:这里终端会输出root的初始密码,把它记录下来。
接下来配置一下/etc/my.cnf
[client] port=3306 socket=/tmp/MysqL.sock [MysqLd] port=3306 basedir=/usr/local/MysqL datadir=/home/MysqL/data log_error=/home/MysqL/log/error.log socket=/tmp/MysqL.sock key_buffer_size=16M max_allowed_packet=8M [MysqLdump] quick
上面只列出了基本的配置项,更多配置项请查看官方文档。配置项根据自己的机器做好调整。
然后将启动脚本添加到服务中,实现开机自启动
cp /usr/local/MysqL/support-files/MysqL.server /etc/init.d/MysqLd chmod +x /etc/init.d/MysqLd chkconfig --add MysqLd
接下来启动MysqLd
service MysqLd start
MysqLd服务启动起来以后,连接MysqLd服务,修改root初始密码
MysqL安装配置完成。
3、安装PHP
下载源码压缩包并解压
接下来进入PHP源码目录编译安装
cd PHP-7.3.0 ./configure --prefix=/usr/local/PHP --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs --with-MysqLi --with-pdo-MysqL make && make install
安装成功后会在/usr/local/apache/modules目录下生成一个libPHP7.so的模块文件
vi /usr/local/apache/conf/httpd.conf
LoadModule PHP7_module modules/libPHP7.so
<FilesMatch \.PHP$>
SetHandler application/x-httpd-PHP
</FilesMatch>
默认PHP的配置文件目录为/usr/local/PHP/lib,也可以在httpd.conf文件中用PHPIniDir指令指定,如:PHPIniDir /etc/PHP.ini
rm -rf /usr/local/apache/htdocs/index.html echo "<?PHP PHPinfo(); ?>" > /usr/local/apache/htdocs/index.PHP
重启apache
/usr/local/apache/bin/apachectl restart
在浏览器中访问http://主机ip/index.PHP,显示PHPinfo()的内容代表配置正确。
LAMP环境到此搭建完成。
4、安装Nginx
下载源码压缩包并解压
进入源码包目录进行编译前的准备工作
注意:pcre的路径为源码包的路径
编译和安装
make && make install
完成以后,先检查apache是否在启动状态
ps aux | grep httpd
如果apache在启动状态则先将其退出
/usr/local/apache/bin/apachectl stop
启动PHP-fpm
groupadd www-data
useradd -s /sbin/nologin -g www-data www-data
cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf cp /usr/local/PHP/sbin/PHP-fpm /usr/local/bin vi /usr/local/PHP/etc/PHP-fpm.d/www.conf
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set,the default user‘s group ; will be used. user = www-data group = www-data
然后启动PHP-fpm
PHP-fpm
location / { root html; index index.PHP index.html index.htm; }
下一步配置来保证对于 .PHP 文件的请求将被传送到后端的 PHP-FPM 模块,取消默认的 PHP 配置块的注释,并修改为下面的内容:
location ~ \.PHP$ { fastcgi_index index.PHP; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
启动Nginx
创建测试文件
rm -rf /usr/local/Nginx/html/index.html echo "<?PHP PHPinfo(); ?>" > /usr/local/Nginx/html/index.PHP
在浏览器中访问http://主机ip,显示PHPinfo()的内容代表配置成功。
到这里LA(N)MP环境搭建完成。