作为一名合格的linux运维工程师来说,搭建Lnmp环境再熟练不过了!!下面就来开始详解一下整个过程吧。
由于网上博友写得都不是很详细,而且有的都是配置错误了,为了造福社会!博主决定亲自写个详细的!
编译安装nginx
- 安装nginx的依赖包
yum install pcre-devel zlib-devel
2,创建运行用户和组
useradd -M -s /sbin/nologin nginx
3, 开始编译安装nginx
tar zxf nginx-1.0.8.tar.gz -C /usr/src
解压完后进入解压存放的目录
cd /usr/src/nginx-1.0.8
开始配置
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_module
配置完后,编译安装
make && make install
4.安装完后,为了nginx服务器的运行方便,可以为主程序nginx创建链接文件,这样管理的时候直接执行“nginx”命令就可以调用nginx的主程序啦~
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5.检查nginx配置文件
nginx -t
如果上述成功的话就可以开始启动nginx啦~
6启动和停止nginx
启动 nginx
想要停止的话 pkill -9 nginx
为了再次确认是否真的启动nginx,
netstat -anpt |grep nginx
查看80端口是否处于监听状态。
在网页上测试nginx运行是否正常。http://127.0.0.1,显示以下说明运行正常。
以上就是nginx的整个编译安装过程了,下面开始详解mysql
编译安装mysql
- 解压缩安装包
tar zxf mysql-5.1.55.tar.gz -C /usr/src
切换到解包的目录
cd /usr/src/mysql-5.1.55
开始配置
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312
配置完成后,编译安装
make && make install
2.建立配置文件
[[email protected] mysql-5.1.55]# cp support-files/my-medium.conf /etc/my.cnf
3.添加到系统服务,并设置执行权限
[[email protected] mysql-5.1.55]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod a+x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
4.优化执行路径,程序库路径
ln -s /usr/local/mysql/bin/* /usr/local/bin/
ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
ln -s /usr/local/mysql/include/mysql/* /usr/include/
5.初始化数据库
创建运行用户
useradd -M -u 27 -s /sbin/nologin mysql
cd /usr/local/mysql/bin/
./mysql_install_db --user=mysql
修改文件的归属
chown -R root:mysql /usr/local/mysql/
chown -R mysql /usr/local/mysql/var/
这样mysql数据库就已经配置完毕了,现在可以启动服务啦
service mysqld start
为root用户设置mysql数据库登录密码
mysqladmin -u root password ‘pwd123‘
到此mysql编译完成
编译安装php
在安装php前,一定不要忘了安装扩展工具库!!!!
tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
cd /usr/src/libmcrypt-2.5.8/
./configure
make && make install
ln -s /usr/local/lib/libmcrypt.* /usr/lib/
tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
cd /usr/src/mhash-0.9.9.9/
./configure
make && make install
ln -s /usr/local/lib/libmhash* /usr/lib/
tar zxf mcrypt-2.6.8.tar.gz-C /usr/src/
cd /usr/src/mcrypt-2.6.8/
./configure
make && make install
工具库安装完后,就可以开始安装php了
tar zxf php-5.3.6.tar.gz -C /usr/src/
cd /usr/src/php-5.3.6
配置
./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm
make && make install
安装完后,就开始设置LNMP组件环境了,这块的步骤很重要!!!
- php.ini配置调整
首先说明一下,安装好php软件包时是没有php.ini配置文件的,这得自己手工添加!
ls /usr/src/php-5.3.6/php.ini-*
执行以上命令会出现一下内容:
/usr/src/php-5.3.6/php.ini-development #开发版样例文件,用于学习,测试
/usr/src/php-5.3.6/php.ini-production #生产版样例文件,用于实际运营
选择其中一个样例文件,进行复制
cp /usr/src/php-5.3.6/php.ini-development /usr/local/php/php.ini
优化执行路径
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
接下来要安装ZendGuardLoader优化模板(详情自己查阅其他资料)
tar zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz
cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3-x
cp ZendGuardLoader.so /usr/local/php/lib/php/
然后修改php.ini配置文件,添加加载及启用ZendGoardLoader.so模块的配置语句
vim /usr/local/php/php.ini
添加以下内容
zend_ extension=/usr/local/php/lib/php/ZendGuardLoader.so
zend_loader.enable=1
2.开始配置nginx支持php环境
cd /usr/local/php/etc/
cp php.fpm.conf.default php.fpm.conf
vim php-fpm.conf
注意:看过很多网友写的这块内容,很多的修改的都不对!!!
修改如下内容
pid = run-fpm.pid //确认pid文件位置
user = nginx // 运行用户
group = nginx //运行组
pm.start_servers = 20
pm.min.spare_servers = 5
pm.max_spare_servers = 35
**注意每句语句前面的;号!!!要记得删除!!很多人都是忘了删除前面的;号,以至于php-fpm启动错误!!!
确认修改的跟以上内容一样之后,就可以启动php-fpm了
/usr/local/sbin/php-fpm
如果你的启动出现了什么提示的话,解决方法:
killall php-fpm 结束php-fpm
然后再次启动/usr/local/sbin/php-fpm
应该就没有提示了!
这时候你可以查看一下是否处于监听状态
netstat -anpt |grep php-fpm
如果出现9000端口的话 说明监听成功
接下来开始修改nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
找到被注释掉的location ~ \.php$ {
依次开始删除前面的注释#就行了,
location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; include fastcgi.conf; }
以上是我修改之后的内容,不过还没结束!不仅仅是要去掉注释,看到
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; 这一行了吗,这一行是修改后的内容
原来默认配置 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 记得修改为fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; *千万不能忘! 至此,lnmp环境就已经搭建完了,下面就开始测试吧 在网站根目录下写个test.php脚本 <?php phpinfo(); ?> 接下来就开始在网页上测试 http://www.bneet.com/test.php,显示以下内容表示php网页解析成功!
接下来开始测试mysql和php连接,在网站根目录下写个test1.php脚本 <?php $link=mysql_connect(‘localhost‘,‘root‘,‘pwd123‘); if($link) echo "<h1>数据库连接成功!!!</h1>"; mysql_close(); ?> 然后访问页面如http://www.benet.com/test1.php,如果看到连接成功的提示信息,则表示php解析数据库正常, 这样以来LNMP环境就搭建完成了。