文章目录
一、lnmp的简介
1.lnmp的构成
LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。本次的实验环境为rhel6.5,属于企业6版本。
二、php的编译安装和配置
1.软件的安装
软件可以在官方网站上下载,本机使用的是版本是php-5.6.35.tar.bz2
tar jxf php-5.6.35.tar.bz2 ##解压软件包
mkdir /usr/local/lnmp ##建立一个专门的目录来存放编译安装的软件
cd php-5.6.35 ##进入解压后的软件目录执行编译安装脚本
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc \
--with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir \
--with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd \
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization \
--enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx \
--with-fpm-group=nginx --with-mcrypt --with-mhash
##自己选择需要编译安装的模块,不需要的就可以不安装,这样比yum安装节省空间和资源
只是这样安装还会有编译依赖性的错误,此处直接给出所有的依赖安装软件
还需要从网上获取两个安装依赖性的包libmcrypt-2.5.8-9.el6.x86_64.rpm和libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
yum install -y libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm gcc openssl-devel /
libxml2-devel libjpeg-turbo-devel libpng-devel freetype-devel net-snmp-devel /
libcurl-devel-7.19.7-37.el6_4.x86_64 gmp-devel-4.3.1-7.el6_2.2.x86_64
##安装以后再重新编译即可
make && make install ##编译安装到指定目录
2.文件的配置
cp php.ini-production /usr/local/lnmp/php/etc/php.ini ##把配置文件的模板移动到配置软件的目录下
vim /usr/local/lnmp/php/etc/php.ini ##修改一下进程管理文件的时区(fast_cgi_manager)
[root@server1 php-5.6.35]# cd sapi/fpm/ ##进入启动命令目录,制作启动脚本
cp init.d.php-fpm /etc/init.d/php-fpm ##制作脚本方式启动
chmod +x /etc/init.d/php-fpm ##给脚本执行权限
cd /usr/local/lnmp/php/etc/ ##进入配置文件目录
cp php-fpm.conf.default php-fpm.conf(主配置文件) ##将default去掉,不然启动会报错缺少php-fpm.conf文件
useradd nginx ##建立nginx用户,运行需要
/etc/init.d/php-fpm start ##启动成功
netstat -tnlp | grep php ##查看php端口是否开启
三、nginx的安装和配置
1.nginx的安装
本次使用官方网站(nginx.org)的稳定版本nginx-1.16.0.tar.gz
tar zxf nginx-1.16.0.tar.gz ##解压安装包
cd nginx-1.16.0 ##进入软件解压目录
yum install -y pcre-devel ##安装nginx需要的依赖环境
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module /
--with-threads --with-file-aio --user=nginx --group=nginx
##添加自己需要的模块
make && make install ##编译安装
2.配置文件的修改
vim /usr/local/lnmp/nginx/conf/nginx.conf ##修改配置文件打开默认访问php页面功能
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/ ##建立一个软链接
nginx -t ##测试软链接能否使用并检查配置文件是否有错
vim /usr/local/lnmp/nginx/html/index.php ##编写一个php测试信息默认文件
nginx ##启动服务,进入浏览器测试
3.测试:
在浏览器输入网址172.25.21.1测试
四、mysql的安装和配置
1.mysql的安装(为了自己添加模块我们使用源码编译安装)
软件包可以在mysql的官网上下载,本机使用的是稳定版mysql-boost-5.7.17.tar.gz
软件需要先使用cmake生成configure编译启动脚本,所以我们先下载一个cmake软件包,注意版本与mysql的编译环境对应
本机使用的是cmake-2.8.12.2-4.el6.x86_64.rpm
tar zxf mysql-boost-5.7.17.tar.gz ##解压软件安装包
cd mysql-5.7.17/ ##进入软件解压目录
yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y ##安装cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data /
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 /
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci /
-DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
##选择自己需要添加的模块
rm -fr CMakeCache.txt ##编译出错需要删除掉编译生成的文件重新编译
yum install ncurses-devel gcc-c++ bison -y ##安装编译依赖,再次cmake
make && make install ##执行这一步编译安装至少需要10g以上的可用空间,最好本身存储在20g以上,而且所耗时间较长
2.配置文件的修改
cd /root/mysql-5.7.17/support-files ##进入软件支持目录
cp mysql.server /etc/init.d/mysqld ##制作脚本启动方式的脚本
chmod +x /etc/init.d/mysqld ##给脚本加上执行权限
注意:如果之前安装过mysql,可以用rpm -qa mysql 查看具体的版本,然后通过yum remove 删除掉
cp /etc/my.cnf /etc/my.cnf.bak ##把mysql的配置文件备份
cp my-default.cnf /etc/my.cnf ##将默认配置文件覆盖掉原来的配置文件
vim /etc/my.cnf ##修改配置文件
groupadd -g 27 mysql ##因为用yum安装时的mysql默认用户是27,所以这里我们也用这个默认id
useradd -u 27 -g 27 mysql ##创建mysql用户
vim ~/.bash_profile ##将mysql加入环境变量
source ~/.bash_profile ##使修改生效
3.mysql的初始化
chown mysql.mysql /usr/local/lnmp/mysql/ -R ##给mysql用户赋予对mysql目录的读写权限来完成初始化
mysqld --user=mysql --initialize ##mysql初始化,最后一行会给一个默认密码,后面安全初始化会用到
chown root /usr/local/lnmp/mysql/ -R ##初始化把默认权限修改回来,这是为了安全考虑
chown mysql /usr/local/lnmp/mysql/data/ -R ##只让mysql用户对mysql的数据可写
/etc/init.d/mysqld start ##启动服务,能启动说明配置没问题,启动后会生成sock套接字
mysql_secure_installation ##安全初始化设定,需要使用mysql初始化给的默认密码
##改变密码后,选择两次no就只使用我们设定的这个密码,然后选择4次yes,删除匿名用户,禁止只有root可以登陆,删除测试库,保存设定
/etc/init.d/mysqld start
nginx
/etc/init.d/php-fpm start ##启动所有服务,查看有无问题
netstat -tnlp ##检查启动的服务端口有没有问题
五、lnmp搭建后与前端网页的交互
1.获取一个论坛模块(本机使用的是Discuz_X3.2_SC_UTF8.zip)
yum install unzip -y ##安装解压工具
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/ ##把软件解压到nginx的默认发布目录下
http://172.25.21.1/upload/ ##在前面的软件都开启的情况下,访问默认发布目录下的论坛模块
##但是此时目录、文件权限检查会有问题
cd /usr/local/lnmp/nginx/html/upload ##进入论坛的默认发布目录
chmod 777 config -R ##按照提示给目录下的文件可写权限,此处为了简化步骤直接把相应的目录给满权限
chmod 777 data -R
chmod 777 uc_* -R
2.进入论坛模块安装与一些可能出现的错误处理
当遇到上面这个报错时,一般的原因是:php的配置文件中没有mysql的套接字或套接字的路径有问题
cd /usr/local/lnmp/php/etc ##进入php的配置文件目录
vim php.ini ##修改配置文件
/etc/init.d/php-fpm reload ##重新加载配置后再次尝试
当再次刷新后遇到上述错误时,根据提示可以判断是mysql的权限问题
chmod 755 /usr/local/lnmp/mysql/data/ ##查看得知mysql用户对于数据目录没有权限,给他权限即可
刷新安装页面即可
3.数据库查看数据和管理员登陆测试
mysql -uroot -predhat ##进入数据库查看是否有论坛模块的数据表生成
SHOW DATABASES; ##查看数据库中的表
USE Discuz; ##进入论坛数据的表
select * from pre_ucenter_members; ##查看论坛用户的信息
在网页上输入http://172.25.21.1/upload/admin.php进行用户登陆测试:
rm -fr /usr/local/lnmp/nginx/html/upload/install/index.php ##删除后刷新