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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值