版本说明
- os:CentOS 6.8
- php:5.5.38
- nginx:1.10.3
- mysql:5.6
安装步骤
环境准备
lnmp整体环境安装至/usr/local/lnmp
目录下
# 创建目录
mkdir -p /usr/local/lnmp
php安装
# 下载php源码
wget -P /usr/local/lnmp/src http://php.net/get/php-5.5.38.tar.gz/from/this/mirror
# 解压
tar xzf /usr/local/lnmp/src/php-5.5.38 -C /usr/local/lnmp/src
# 配置编译选项(这里默认编译pdo,fpm,mysql模块,更多编译选项可以通过configure --help 查看)
cd /usr/local/lnmp/src/php-5.5.38 && ./configure --prefix=/usr/local/lnmp/php5.5.38 --enable-fpm --enable-mysqlnd --with-mysql --with-mysqli --with-pdo-mysql
# 编译 && 安装
make && make install
# 添加mysql用户
# 初始化db
/usr/local/lnmp/mysql5.6/scripts/mysql_install_db --user=mysql --datadir=/usr/local/lnmp/mysql5.6/data/mysql
nginx安装
# 下载nginx源码
wget -P /usr/local/lnmp/src http://nginx.org/download/nginx-1.10.3.tar.gz
# 解压
tar -xzf /usr/local/lnmp/src/nginx-1.10.3.tar.gz -C /usr/local/lnmp/src
# 配置编译选项
cd /usr/local/lnmp/src/nginx-1.10.3 && ./configure --prefix=/usr/local/lnmp/nginx1.10.3
# 编译 && 安装
make && make install
mysql安装
# 下载源码
wget -P /usr/local/lnmp/src https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.36.tar.gz
# 解压
tar xzf /usr/local/lnmp/src/mysql-5.6.36.tar.gz -C /usr/local/lnmp/src
# 配置编译选项(mysql从5.5起,源码安装使用cmake了
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql5.6 \
-DMYSQL_DATADIR=/usr/local/lnmp/data/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1)
# 编译 && 安装
make && make install
# 添加mysql账户
useradd mysql
# 修改mysql文件夹属主
chown -R mysql:mysql /usr/local/lnmp/mysql5.6
# 初始化db
/usr/local/lnmp/mysql5.6/scripts/mysql_install_db --user=mysql --datadir=/usr/local/lnmp/mysql5.6/data/mysql
# 修改配置文件,指定data_dir参数为编译时的参数
datadir=/usr/local/lnmp/mysql5.6/data/mysql
# 启动mysql
/usr/local/lnmp/mysql5.6/bin/mysqld_safe --defaults-file=/usr/local/lnmp/mysql5.6/etc/my.cnf &
配置lnmp && 测试
配置fpm
# 拷贝一份默认的配置文件
cp /usr/local/lnmp/php5.5.38/etc/php-fpm.conf.default /usr/local/lnmp/php5.5.38/etc/php-fpm.conf
# 修改配置文件(直接修改全区段,配置监听端口为9999)
listen = 127.0.0.1:9999
# 启动fpm
/usr/local/lnmp/php5.5.38/sbin/php-fpm -c ../etc/php.ini
配置nginx
- 修改nginx.conf配置文件中server段配置如下
server {
listen 8999;
server_name lnmp.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9999;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
- 在指定的root目录下创建index.php文件(这里使用默认的html目录)
echo "<?php hello world!" > /usr/local/lnmp/nginx1.10.3/html/index.php
- 重启nginx
/usr/local/lnmp/nginx1.10.3/sbin/nginx -s reload
访问
- 本地绑定host
- 访问lnmp.com:8999
常用操作
nginx基本操作
- 启动:
nginx -c nginx配置文件路径
- 重启:
nginx -s reload
- 关闭:
kill -QUIT <nignx-master-pid>
fpm基本操作
- 启动:
php-fpm -c php.ini文件路径 -y php-fpm.conf文件路径
- 重启:
kill -USR2 <fpm-master-pid>
- 关闭:
kill -INT <fpm-master-pid>
mysql基本操作
- 启动:
/usr/local/lnmp/mysql5.6/bin/mysqld_safe --defaults-file=/usr/local/lnmp/mysql5.6/etc/my.cnf
- 停止:
/usr/local/lnmp/mysql5.6/bin/mysqladmin -h 127.0.0.1 -P 6000 shutdown
安装过程中可能遇到的问题
缺少依赖库
这种问题直接使用yum安装缺少的依赖库即可,只不过注意安装的包应该是开发包(*-devel)
mysql5.5起开始使用cmake
- mysql cmake 配置:http://laowafang.blog.51cto.com/251518/1294964/
- 注意,如果重新运行cmake,需要清除CMakeCache.txt文件
编译安装php后默认没有php.ini配置文件,需要手动创建
- 确认当前配置文件应该在的位置,在指定的安装位置找到php,执行
./php -r 'phpinfo();' | grep "php.ini"
- 在源码包中找到默认的配置文件,应该就在解压的目录下,有两个php.ini-development和php.ini-production
- 复制默认的配置文件到指定的路径即可,注意修改名字为php.ini
无法启动nginx
这个原因是已经有一个nginx实例在监听指定端口,只需要把配置文件中的端口换一个就可以了