您的位置:首页 > 运维架构 > Nginx

LNMP(linux+nginx+mysql+php)环境搭建_1

2016-08-11 22:15 666 查看
LNMP是web应用常用环境搭建。由于是在linux上安装,会出现各种各样诡异的问题,写次文章的目的是让各位需要搭建此环境的小伙伴少走一些弯路!

1.编译方式安装Nginx

提示:编译安装一定要先确保linux安装有gcc 和gcc-c++,使用yum -y install gcc gcc-c++即可,过程中可能出现的错误尽量贴出来了,没有涉及到的自行把错误贴到www.baidu.com,64位机下X86_64的包,32位下i386的包

①安装Nginx所需要的依赖包以及Nginx

· gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
· rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
·ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )

·Nginx包 (下载: http://nginx.org/en/download.html)

依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包.

下载包:
首先,创建包的存储目录
mkdir -p /home/tools
进入目录
cd /home/tools
下载相应的包
例如:wget -q http://nginx.org/download/nginx-1.6.3.tar.gz url直接在网页中右键复制下载链接粘贴到xshell中即可。
openssl-fips-2.0.2.tar.gz
zlib-1.2.7.tar.gz
pcre-8.21.tar.gz
nginx-1.2.6.tar.gz
②依次安装

-安装openssl-fips-2.0.2.tar.gz
[root@localhost tools]# tar -zxvf openssl-fips-2.0.2.tar.gz
[root@localhosttools]# cd openssl-fips-2.0.2
[root@localhostopenssl-fips-2.0.2]# ./config
[root@localhostopenssl-fips-2.0.2]#make
[root@localhostopenssl-fips-2.0.2]# make install

-安装zlib-1.2.7.tar.gz
[root@localhosttools]# tar -zxvf zlib-1.2.7.tar.gz
[root@localhosttools]# cd zlib-1.2.7
[root@localhost zlib-1.2.7]# ./configure
[root@localhost zlib-1.2.7]# make
[root@localhost zlib-1.2.7]# make install
-安装pcre-8.21.tar.gz
[root@localhosttools]# tar -zxvf pcre-8.21.tar.gz
[root@localhosttools]# cd pcre-8.21
[root@localhost pcre-8.21]# ./configure
[root@localhost pcre-8.21]# make
[root@localhost pcre-8.21]# make install
-安装 nginx-1.2.6.tar.gz
[root@localhosttools]#useradd nginx
-s /sbin/nologin -M
[root@localhosttools]# tar -zxvf nginx-1.2.6.tar.gz
[root@localhosttools]# cd nginx-1.2.6
[root@localhost nginx-1.2.6]# ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.2.6/
--with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2
[root@localhost nginx-1.2.6]#
make
[root@localhost nginx-1.2.6]# make install
[root@localhost nginx-1.2.6]#
ln -s /application/nginx-1.2.6 /application/nginx
③启动并检查安装结果
检查语法错误
[]#/application/nginx/sbin/nginx -t
启动,可能会有其他程序占用80端口,比如httpd,kill进程在启动
[]#/application/nginx/sbin/nginx
查看启动是否成功
[]#netstat -lnt |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN #即为成功
浏览器检查实际效果
浏览器打开http://主机ip,使用可以访问到此主机的计算机上的浏览器即可,显示Welcom to nginx!
表示成功
或者linux上wget 127.0.01 或者 curl 127.0.0.1 返回内容为一包含welcome to nginx 的html
表示成功
④访问不了故障排除
检查防火墙:/etc/init.d/iptables stop #关闭防火墙
检查端口:netstat -lnt |grep 80 #是否是nginx占用,其他程序占用就干死它,重启nginx
服务器本地进行wget http://127.0.0.1测试 客户端检查:ping ip #物理线路检查,排除物理线路
telnet ip 80#服务器端ip端口检查,排除防火墙
客户端浏览器输入ip测试,排除Http协议问题
2.安装mysql
源码安装mysql
①下载包
#cd /home/tools
#wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.51-linux2.6-x86_64.tar.gz #tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
#mv mysql-5.5.32-linux2.6-x86_64.tar.gz /application/mysql-5.5.32
#ln
/application/mysql-5.5.32
/application/mysql
#cd
/application/mysql
#/bin/cp
support-files/my-small.cnf /etc/my.cnf

②初始化mysql数据库文件
     #mkdir  -p /application/mysql/data
     #chown -R mysql.mysql /application/mysql-5.5.32
      #/application/mysql/scripts/mysql_install_db  --basedir=/application/mysql  --datadir=/application/mysql/data --user=mysql
     过程中出现两个OK,表示初始化成功,否则要解决初始化问题
     可能出现:ERROR:1004 Can't create fiel'/tmp/#sql300_1_0.frm'(errno:13)
     解决办法为处理/tmp目录
     ls -ld /tmp
     chmod -R 1777 /tmp/
    ③配置并启动mysql
     #cp support-files/mysql.server /etc/init.d/mysqld
     #chmod +x /etc/init.d/mysqld
     #sed -i 's#/usr/local/mysql#/application/mysql#g'/application/mysql/bin/mysqld_safe /etc/init.d/mysqld
     #/etc/init.d/mysqld start
     Starting Mysql..SUCCESS
         检查是否启动
     #netstat -lnt|grep msyql
     tcp 0 0.0.0.0:3306 0.0.0.0:*   LISTEN   9466/mysqld
     开机启动
     #chkconfig --add mysqld
     #chkconfig mysqld on
     #chkconfig --list mysqld
     配置mysql命令全局使用路径
     #echo 'export PATH=/application/mysql/bin:$PATH' >> /ect/profile
     #source /etc/profile
    ④登录mysql
     正常来说,直接#mysql可以进入数据库系统,身份是root初始没有密码
     但是如果出现:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usingpassword: YES)
     解决办法:#/etc/init.d/mysql stop
         #mysqld_safe --user=mysql--skip-grant-tables--skip-networking &
         #mysql -u root mysql
         #mysql> UPDATE user SETPassword=PASSWORD(’your_new_password’)where USER=’root’;
         #FLUSH PRIVILEGES;
         #quit
         #/etc/init.d/mysql restart 
         #mysql -uroot -p
         Enter password: <输入新设的密码your_new_password>
⑤创建mysql用户并授权
#mysql -uroot -p
输入密码
mysql>create user 'name'@'%' identified by 'password';
name为用户名,password为用户密码,%表示该用户可以在任意的ip地址登录系统,也替换%为指定特定ip地址。
mysql>grant all on *.* to 'name'@'%';
授权,all表示所有权限,可以指定为select...,on后面表示权限应用的数据库和表,第一个*表示任意数据库,第二个*表示任意表
to为授权用户
mysql>flush privileges
mysql>quit
#mysql -u name -p
password
mysql>
如果网络中有windows主机,可以使用navicat连接mysql数据库,可以测试远程连接是否正常。


3.安装PHP

安装php之前确保mysql和nginx安装成功。并且启动服务,检测启动成功,检测方法如前所述。

  ①安装php所需要的lib库

#yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel -y

#yum install libpng-devel gd-devel libcurl-devel libxslt-devel -y

编译安装libiconv-devel

#cd /home/tools

#wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz

#tar zxf libiconv-1.14.tar.gz

#cd libiconv-1.14

#./configure --prefix=/usr/local/libiconv

#make

#make install

安装libmcrypt库

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel

安装mhash库

yum -y install libmcrypt-devel

安装mcrypt

yum -y install mcrypt

②开始安装php,我的版本是php5.6,5.5以上完全适用,5.3之前版本只编译参数不同,其他几乎一样

#cd /home/tools

#wget http://cn2.php.net/get/php-5.6.24.tar.gz/from/this/mirror

#tar zxf php-5.6.24.tar.gz

#cd php-5.6.24

编译参数!!!!!!!!!!!!

#./configure \

--prefix=/application/php5.6.24 \

--with-mysql=/application/mysql \

--with-pdo-mysql=mysqlnd \

--with-iconv-dir=/usr/local/libiconv \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--disable-rpath \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--enable-mbregex \

--with-curlwrappers \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--with-mcrypt \

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-soap \

--enable-short-tags \

--enable-zend-mutilbyte \

--enable-static \

--with-xsl \

--with-fpm-user=nginx \

--with-fpm-group=nginx \

--enable-ftp \

--enable-opcache=no

#ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

#touch ext/phar/phar.phar

#make

#make install

make的成功标志为:bulid complete!Don't forget to run 'make test'

make install 成功标志:installing PDO headers :......

中间出现错误,查看错误原因,自行baidu解决,正常按照步骤走下来不会出现error,linux的脾气谁也说不准!

③配置PHP 配置文件php.ini

#ln -s /application/php5.6.24 /application/php

#ls php.ini*

两个配置文件,一个开发用,一个生产用

#cp php.ini-development /application/php/lib/php.ini

开发时使用这个,出现错误浏览器会有调试信息提示。

#cd /application/php/etc/

#ls

#cp php-fpm.conf.default php-fpm.conf

④启动php服务

#application/php/sbin/php-fpm

检查启动情况

#ps -ef|grep php-fpm

可以看到相应进程已经启动

#lsof -i :9000 

默认使用9000端口提供服务,不要让其他程序占用,启动时提示端口占用,杀死占用程序,在启动服务

⑤配置nginx支持php

#cd /application/nginx/conf

#cp nginx.conf nginx.conf.02

#vi nginx.conf

修改配置文件

worker_processes  1;

       

        error_log  logs/error.log;

     

     

       events {

         worker_connections  1024;

      }

   

     转第二篇,LNMP(linux+nginx+mysql+php)环境搭建_2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: