LNMP是Linux+Nginx+Mysql+PHP的组合方式
使用LNMP的主要原因还是因为Nginx体积小,方便后期对于网络的环境变换(灵活)、切换和方便调试,比较符合轻量级, 相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,也可作为负载均衡及反向代理服务器,做到动静分离
Only one也就是LNMP全部都安装在一台Linux服务器
部署LNMP环境
实验环境
一台Linux即可
实验目的
用户可以通过访问Nginx来解析PHP页面
实验步骤
建议LNMP环境部署的顺序按照Linux、Nginx、Mysql、PHP的顺序进行,Liunx是最基本的安装系统,这里不多做介绍,接着做安装Nginx
第一步:
安装Nginx(参考之前的文章即可)
第二步:
安装Mysql
需要用到的安装包cmake、mysql,按照需要的版本下载即可
# 解决依赖关系
yum -y install ncurses-devel
# 解压cmake安装包,编译安装(正常不卡,20分钟左右,如果配置报错,使用yum安装gcc、gcc-c++)
tar zxf cmake-2.8.7.tar.gz -C /usr/src
cd /usr/src/cmake-2.8.7
./configure && gmake && gmake install
# 解压mysql安装包,编译安装,本人电脑时长40多分钟
tar zxf mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src/mysql-5.5.22
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
make && make install
第三步:
调整mysql环境
# 优化命令路径
ln -s /usr/local/mysql/bin/* /usr/bin # 这里的/usr/local/mysql是你选择的安装路径
# 创建程序用户
useradd -M -s /sbin/nologin mysql
# 拷贝mysql配置文件的模板文件到安装时SYSCONFDIR指定的路径下/etc,5.6以上版本的mysql默认在/etc下会有my.cnf
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
# 拷贝mysql启动脚本文件,用作管理服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
# 将服务添加为系统服务
chkconfig --add mysqld
# 初始化数据库,5.6版本以上需要调整对应的my.cnf中的配置项,否则连接数据库时会报错,参考之前mysql文档即可
/usr/local/mysql/scripts/mysql_install_db --user=mysql --group=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
# 优化命令变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
# 启动服务
systemctl start mysqld
第四步:
安装PHP
# 解决依赖关系
yum -y install gd libxml2-devel libjpeg-devel libpng-devel
# 解压PHP安装包,编译安装
tar zxf php-5.3.28.tar.gz -C /usr/src
cd /usr/src/php-5.3.28
./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-fpm --enable-mbstring --with-jpeg-dir=/usr/lib
make && make install
第五步:
调整php环境,需要用到php优化包——ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz,当然也可以不用
# 复制主配置文件模板到安装路径下
cp /usr/src/php-5.3.28/php.ini-development /usr/local/php/php.ini
# 解压优化包
tar zxf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src
# 复制优化文件到php安装路径下
cp /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php/
第六步:
修改php配置文件
vim /usr/local/php/php.ini
修改:
short_open_tag = On
default_charset = "utf-8"
添加到末尾(开启优化):
zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so
zend_loader.enable=1
第七步:
配置php-fpm进程
# 复制php中自带的php-fpm启动脚本文件
cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
# 复制php-fpm的配置文件到php下
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# 调整php-fpm配置文件
vim /usr/local/php/etc/php-fpm.conf
修改:
pid = run/php-fpm.pid
user = nginx
group = nginx
pm.max_children = 50 # 最大空闲子进程
pm.start_servers = 20 # 启动时开启的进程数
pm.min_spare_servers = 5 # 最小空闲进程数
pm.max_spare_servers = 35 # 最大的空闲进程数
# 启动php-fpm
systemctl start php-fpm
第八步:
整合nginx和PHP
vim /usr/local/nginx/conf/nginx.conf
找到php的注释行,取消注释并修改为以下
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
然后在找到普通页面的location模块中,添加index.php
location / {
root html;
index index.html index.htm index.php;
}
# 重启Nginx
systemctl restart nginx
第九步:
编写PHP页面文件,用来连接数据库
vim /usr/local/nginx/html/index.php
添加:
<?php
$link=mysqli_connect('localhost','root'); # localhost为mysql所在主机,root为登录mysql的用户,如果有密码,后面还需要指定密码
if($link) echo "恭喜你,数据库连接成功啦!!"; #连接成功后会返回此语句
mysqli_close($link);
?>
第十步:
验证
lynx 192.168.1.6/index.php
本机访问应该没问题,其他机器访问,除了能ping通,记得放行防火墙端口或者关闭防火墙沙盒
搭建简易论坛
这里以天空之城论坛为例,建议使用图形化linux,命令行没有试过,skyuc只支持php版本5.3以上
第一步:
下载SKYUC的zip安装包
# 解压SKYUC安装包
unzip SKYUC.v3.4.2.SOURCE.zip -d /usr/src
# 如果没有unzip命令,使用yum安装即可
# 复制SKYUC中的页面文件目录到nginx的网页根目录下
cp -r /usr/src/SKYUC.v3.4.2.SOURCE/wwwroot/ /usr/local/nginx/html/skyuc
# 更改skyuc属主属组,否则访问时会失败
chown -R nginx.nginx /usr/local/nginx/html/skyuc
第二步:
为SKYUC创建数据库,及管理用户
mysql -uroot
mysql> create database skyuc;
mysql> grant all on skyuc.* to 'skyuc'@'192.168.1.%' identified by '123.com';
第三步:
使用浏览器图形化安装skyuc
可以在本机,也可以使用windows系统进行访问http://192.168.1.6/skyuc/install/index.php
图中的用户名/密码/数据库均是上一步经过授权的,按照默认的下一步即可
http://192.168.1.6/skyuc/admincp/index.php
用来登录后台管理中心
安装成功后,建议将install目录删除
访问http://192.168.1.6/skyuc
即可访问该论坛