高效部署:基于LNMP架构的PHP源码编译与优化实战
在当今互联网时代,Web服务器的性能和稳定性对于网站的运行至关重要。LNMP(Linux、Nginx、MySQL、PHP)架构因其高性能、轻量级和良好的扩展性,成为了众多开发者和企业的首选。本文将详细介绍如何在CentOS 7.X 64位操作系统上手动安装和优化LNMP环境,特别是PHP源码的编译与优化。
一、准备工作
在开始安装之前,我们需要做好以下准备工作:
- SELinux可能会限制Nginx和PHP的运行,因此建议关闭。
sudo setenforce 0
(临时关闭SELinux)sudo systemctl stop firewalld
(停止firewalld服务)- 为了确保能够顺利下载所需的软件包,配置一个稳定且快速的yum源是必要的。
sudo vi /etc/yum.repos.d/CentOS-Base.repo
(编辑yum源配置文件)sudo yum install -y gcc make automake autoconf libtool zlib-devel openssl-devel pcre-devel
关闭SELinux和firewalld防火墙:
配置网络yum源:
安装编译工具和依赖软件包:
二、安装Nginx
Nginx是一款高性能的Web服务器,以下是详细的安装步骤:
cd /usr/local/src
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf
make && sudo make install
- 创建一个Nginx的服务脚本,以便通过systemd管理。
sudo vi /etc/systemd/system/nginx.service
下载Nginx源码包:
解压缩并安装:
设置启动管理脚本:
三、安装MySQL
MySQL是LNMP架构中的数据库组件,以下是安装步骤:
cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.40.tar.gz
tar zxvf mysql-5.6.40.tar.gz
sudo groupadd mysql
sudo useradd -r -g mysql mysql
cd mysql-5.6.40
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc
make && sudo make install
sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql
sudo vi /etc/systemd/system/mysqld.service
sudo /usr/local/mysql/bin/mysql_secure_installation
下载并解压缩MySQL源码包:
创建运行MySQL的用户:
编译安装:
初始化并设置启动和自启动管理脚本:
设置root用户密码:
四、安装PHP
PHP是LNMP架构中的脚本语言,以下是详细的安装步骤:
cd /usr/local/src
wget http://php.net/get/php-5.6.36.tar.gz/from/this/mirror
tar zxvf php-5.6.36.tar.gz
cd php-5.6.36
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-openssl --with-mcrypt --with-zlib --with-curl --enable-fpm --enable-mbstring --enable-xml --enable-sockets --enable-json
make && sudo make install
sudo cp php.ini-production /usr/local/php/lib/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo ln -s /usr/local/php/bin/php /usr/bin/php
sudo ln -s /usr/local/php/sbin/php-fpm /usr/sbin/php-fpm
下载并解压缩PHP源码包:
编译安装:
生成配置文件:
创建软连接以便更方便使用PHP相关命令:
五、优化LNMP环境
为了进一步提升LNMP环境的性能,我们可以进行以下优化:
- 调整worker_processes和worker_connections参数,以充分利用CPU资源。
sudo vi /etc/nginx/nginx.conf
- 调整pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers参数,以优化进程管理。
sudo vi /usr/local/php/etc/php-fpm.conf
- 安装memcached并配置PHP的memcache扩展,以提高LNMP性能。
sudo yum install -y memcached
cd /usr/local/src
wget http://pecl.php.net/get/memcache-2.2.7.tgz
tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && sudo make install
sudo systemctl restart nginx
sudo systemctl restart php-fpm
sudo systemctl restart memcached
优化Nginx配置:
优化PHP-FPM配置:
部署memcached缓存数据库:
重启服务以应用更改:
六、验证LNMP环境
为了确保LNMP环境搭建成功,我们可以创建一个简单的PHP测试文件:
sudo vi /usr/local/nginx/html/test.php
- 添加内容:
<?php phpinfo(); ?>
- 打开浏览器,访问
http://your_server_ip/test.php
- 如果看到PHP信息页面,说明LNMP环境搭建成功。
创建测试文件:
访问测试文件:
七、总结
通过以上步骤,我们成功地在CentOS 7.X 64位操作系统上手动安装和优化了LNMP环境。特别是PHP源码的编译与优化,对于提升Web服务器的性能至关重要。希望本文能够帮助到正在学习和使用LNMP架构的开发者和运维人员,为大家的Web项目提供稳定高效的支持。
在实际部署过程中,还可以根据具体需求进行更多的优化和配置,如使用 Opcode 缓存(如 OPcache)、配置 HTTPS、使用 CDN 等。 LNMP 架构的灵活性和可扩展性,使其成为构建高性能 Web 服务的理想选择。