3r2e3123 发表于 2015-1-21 08:41:20

linux下LEMP的搭建

LEMP平台由linux nginx mysql php组成 ,用来提供动态网站的web服务:
一:Nginx的安装:
1. # yum -y install pcre-devel zlib-devel
2. # useradd -M -s /sbin/nologin nginx
3. # tar -zxvf nginx-1.0.8.tar.gz -C /usr/src/
4. # ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
5. #make&& make install
6. # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
二:mysql的安装:
1. # tar -zxvf mysql-5.1.55.tar.gz -C /usr/src
2. # ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312
3. # useradd -M -u 27 -s /sbin/nologin mysql
4. # cp my-medium.cnf /etc/my.cnf
5. # cp mysql.server /etc/init.d/mysqld
6. # chmod a+x /etc/init.d/mysqld
7. # chkconfig --add mysqld
8. # ln -s /usr/local/mysql/bin/* /usr/local/bin/
9. # ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
10. # ln -s /usr/local/mysql/include/mysql/* /usr/include/
11. # ./mysql_install_db --user=mysql
12. # chown -R root:mysql /usr/local/mysql/
13. # service mysqld start
14. # mysqladmin -u root password 'pwd123'(报错了)
15.16. 上述原因是由于mysql生成的mysql.sock在/var/lib下 所以在TMP下就没有生成 解决办法
17. # ln -s /var/lib/mysql/mysql.sock /tmp
18. # mysqladmin -u root password 'pwd123'(再运行果然没有报错了)
三:php的编译安装:
1. # tar -zxvf php-5.3.6.tar.gz -C /usr/src/
2. # ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm
3. (报错)
4.    checking for xml2-config path...configure: error: xml2-config not found. Please check your libxml2 installation.(这是由于libxml2这个包没有安装 yum安装就搞定)
5. # yum -y install libxml2-devel.x86_64
6. (报错)
7. 这是由于configure一般的搜索编译路径为/usr/lib/下,因为php默认就在/usr/lib/下找相关库文件,而x64机器上是在:/usr/lib64.这时你就可以直接把需要的库文件从/usr/lib64中拷贝到/usr/lib/中去就可以了

8.图中可以看到所要的包都在/usr/lib64下但是缺少一个最关键的包 libpng.so 一定要注意不要把compiz下的libpng.so当做我们需要的,否则mysql连接的时候会报错
9. # rpm -pql /mnt/Packages/libpng-devel-1.2.49-1.el6_2.x86_64.rpm查询可知由他来提供这个包所以安装吧
10. # rpm -ivh /mnt/Packages/libpng-devel-1.2.49-1.el6_2.x86_64.rpm
11. # cp /usr/lib64/libpng.so* /usr/lib
12. # ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm(重新配置之后好了,接者下一步)
13. # make && make install
14. # cp php.ini-development /usr/local/php5/php.ini
15. # ln -s /usr/local/php5/bin/* /usr/local/bin/
16. # ln -s /usr/local/php5/sbin/* /usr/local/sbin/
17. # tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
18. # cp /nginx/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php5/lib/php/
19. # vim /usr/local/php5/php.ini
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend-loader.enable=1
20. 为了是nginx支持PHP环境有两种方法: 一:充当中介,讲访问PHP的请求转交 二:通过PHP的FPM模块的调用本机的PHP环境
选用FPM需要先启动php-fpm进程
21. # cp /usr/local/php5/etc/php-fpm.conf.default/usr/local/php5/etc/php-fpm.conf
user = nginx ————————————————————>运行用户
group = nginx————————————————————>运行组
pid = run/php-fpm.pid_————————————————>确认PID文件位置
pm.start_servers = 20—————————————————>启动时开启的进程数
pm.min_spare_servers = 5———————————————>最少空闲进程数
pm.max_spare_servers = 35———————————————>最大空闲进程数
22. # php-fpm
23. 配置nginx使他支持php解析
24. # vim /usr/local/nginx/conf/nginx.conf
    server {
      listen       80;
      server_namewww.benet.com;————————————————> 网站名
      location ~ \.php$ { ————————————————————> 访问PHP页面的配置段
      root         /var/www/benet; ——————————————> 网站根目录
      fastcgi_pass 127.0.0.1:9000;————————————————>PHP监听地址
      fastcgi_index index.php;——————————————————>php首页文件
      include      fastcgi.conf;—————————————————>包括fastcgi.conf样本配置
      }
      }
25. 访问自己准备好的动态网站时报错
26. 这是由于mysql的权限问题 导致不能连接
chown -R root:mysql /usr/local/mysql
chmod 755 /var/lib/mysql
chown -R root:mysql /var/lib/mysql/mysql
chmod 755 /usr/local/mysql/lib/mysql/libmysqlclient.a

页: [1]
查看完整版本: linux下LEMP的搭建