LNMP环境搭建

假装没事ソ 提交于 2019-11-29 04:12:52

LNMP环境搭建

 Linux+nginx+mysql+php/perl/python

 一、安装 gcc(编译) gcc-c++(用于新版本的mysql) make cmake libtool(工具) ncurses-devel
 二、安装nginx
 三、安装Mysql数据库
  1、编译安装Mysql
   tar zxf /usr/src/mysql-
   cd mysql-
   cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql(指定路径) 配置环境,功能相当于./configure
   make && make install 编译安装
  2.配置mysql
   cp support-files/my-default.cnf /etc/my.cnf 生成mysql的主配置文件,命名为/etc/my.cnf
   cd /usr/local/mysql 跳转到mysql默认安装的目录下
   ll 属主属组都是root
   useradd -s /sbin/nologin mysql 创建用户mysql,用于登录mysql数据库
   chown -R mysql.mysql . 更改当前路径下所有文件为属主.属组为mysql
   scripts/mysql_install_db --user=mysql 让mysql用户身份初始化数据库
   chown -R root . 更改属主,限制只有管理员root有权限管理数据库的配置
   chown -R mysql data/ 更改数据文件夹data/属主为mysql,数据库内数据的管理
   /usr/local/mysql/bin/mysqld_safe --user=mysql & 以mysql用户执行开启mysql数据库(后台执行)
   echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local
   设置mysql开机启动,将其加入开机第一个脚本
   netstat -tnlp 查看mysql服务是否开启,mysql默认端口号3306
   /usr/local/mysql/bin/mysql -u root -p 以root身份登录mysql数据库服务器
   show databases;显示所有的数据库
   exit退出
 四、安装动态网站相关的库和软件:
   1.tar -xvf jpegsrc…解包
   2.cd jpegsrc 跳转到刚刚解包的路径
  2.编译安装
   ./configure &&make &&make install
   依次安装以下软件包:
   jpegsrc.v8b.tar 图像压缩
   freetpye- 字体引擎,支持多种字体格式文件
   zlib- 函数库
   libpng- png图像文件存储格式
   gd- 支持库
   libxml2- c语言版的解析器
 五、安装PHP解析环境
  较新版本(如5.3)的PHP已经自带FPM(fastCGI process manager,FastCGI进程管理器)模块,用来对PHP解析实例进行管理,优化解析效率,因此在配置PHP编译选项时应添加”–enable-fpm”以启用此模块。为了提高PHP解析效率,建议将相应版本的ZendGuardLander也装上。
  1、解压并配置PHP
   tar zxf php-5.3.6.tar.gz
   cd php-5.3.6
   ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file=/usr/local/php --with-gd-dir=/usr/lib --with-ttf(连接freetype) --with-zlib-dir --with-jpeg-dir --with-png-dir -enable-mbstring(多字节,字符串的支持) -enable-fpm
   排错:配置如果“configure:error: libpng.(a|so) not found.”错误。
 解决方法:
   根据报错发现是因为libpng.so和libpng.a找不到,检查libpng的相关软件是否已经安装,如果已安装,需要将“/usr/lib64/libpng*”库文件拷贝到“/usr/lib”下。执行如下命令:
   cp -frp /usr/lib64/libpng* /usr/lib
   原因:因为configure一般的搜索编译路径为/usr/lib/下,而x64位的系统默认在“/usr/lib64”下,因此需要拷贝到“/usr/lib”目录下。
   如果报configure: error: libjpeg.(a|so) not found错误解决方法和上面的解决方法类似。
  2、编译安装PHP,并配置安装后的调整
   make && make install
   cp php.ini-development /usr/local/php/etc/php.ini
   ln -s /usr/local/php/bin/* /usr/loacl/bin
   ln -s /usr/local/php/sbin/* /usr/local/sbin
 3、配置Nginx支持PHP环境
   若要让Nginx能够解析PHP网页,有两种方法可以选择;其一,充当中介,将访问PHP页面的WEB请求转交给其他服务器(LAMP)去处理;其二,通过使用PHP的FPM模块来调用本机的PHP环境,在此选择后者。
   PHP-FPM 是 一个 PHP FastCGI 进程管理器 FastCGI是一个可伸缩的,高速地在web server和脚本语言间交互的接口。
   如果选用FPM方式,则需要先启动php-fpm进程,以便监听PHP解析请求。
   建立php-fpm.conf配置文件,并修改其中的PID文件、运行用户、服务数(进程数量)等相关设置,然后启动php-fpm程序即可(默认监听本机的9000端口)
   cd /usr/local/php/etc/
   cp php-fpm.conf.default php-fpm.conf
   启动php-fpm,并查看地址监听。
   /usr/local/php/sbin/php-fpm
   netstat -anpt | grep php-fpm
 4、配置Nginx支持PHP解析
  无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进程进行解析,都需要在”server{}”配置段中添加location设置,以便指定当访问.php面页时采取何种操作。
  方法一:转交给其他WEB服务器处理,例如:交给IP地址为192.168.0.200的LAMP服务器处理,从而实现由Nginx负责静态页面,LAMP负责动态页面的分离效果。
  server {
   …… //省略部分信息
   location ~ .php$ { //访问.php页面的配置段
 proxy_pass http://192.168.0.200:80; //APACHE服务器的监听地址
    }
    }
  上面这种写法只是发送以.php为后缀的页面访问请求给其他WEB服务器,如果有其格式的文件访问(如:html、jpg等)就会出问题。访问不了了。

  方法二:调用本机的php-fpm进程,使用的配置语句如下所示。在conf/目录下的fastcgi.conf文件中已经包含必需的宏设置,可通过include语句添加进来。
  server {
  …… //省略部分信息
   location ~ .php$ { //访问php页面的配置段
  root /var/www/wg; //PHP网页文档根目录
  fastcgi_pass 127.0.0.1:9000; //php-fpm的监听地址
  fastcgi_index index.php; //PHP首页文件
  include fastcgi.conf; //包括fastcgi.conf样本配置
   }
   }

 选择第二种方法,完成修改后重新加载nginx服务即可生效。
 Nginx配置文中整个server段的配置内容如下:

 server {
  listen 80;
  server_name www.wg.com;
  location /{
  root /var/www/wg/;
  index index.html index.php;
  }
 location ~ .php$ {
  root /var/www/wg;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi.conf;
  }
 }
 service nginx restart
 5、访问测试

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!