您好,欢迎光临赵帅的博客,如果有什么不足或者错误之处,感谢您留言指出!

【笔记】LNMP环境“源码”安装指南

php 赵 帅 95浏览 0评论

LNMP 环境源码安装指南

准备工作

什么是源码安装?

我们可能在使用Ubuntu类似的Linux开发环境时候,经常会使用lamp或lnmp环境,apt-get、yum、brew(mac)等第三方的包管理工具会很方便帮助我们配置好,复制几个命令就可以使用了,这样可能在入门时候会比较方便帮我们搭建一个开发环境。

linux上程序的结构一般包括下面几个部分:

  • 二进制文件:也就是可以运行的程序文件
  • 库文件:就是通常我们见到的lib目录下的文件
  • 配置文件:这个不必多说,都知道
  • 帮助文档:通常是我们在Linux下用man命令查看的命令的文档

源码安装 是去通过 ./confgure 进行配置,make 进行编译,编译完成之后 make install 进行安装。这样会帮助我们更好去理解 php、mysql、nginx 等配置以及运行原理。搞起!!!

环境条件

  • Linux
  • php 5.5.38
  • mysql 5.6
➜  / mkdir /usr/local/lnmp

Nginx

1、下载安装包

➜  wget http://nginx.org/download/nginx-1.10.3.tar.gz
➜  tar -zxvf nginx-1.10.3.tar.gz
➜  mv nginx-1.10.3 nginx

2、安装

➜  cd nginx
➜  ./configure --prefix=/usr/local/lnmp/nginx --user=www --group=www
➜  make && make install

3、配置启动

记住下面我们配置的php-fpm.conf的监听端口一定要是 127.0.0.1:9999 !!!

➜  vim ./conf/nginx.conf
 35    server {
 36         listen       8888;
 37         server_name  localhost;
 38 
 39         error_page   500 502 503 504  /50x.html;
 40         location = /50x.html {
 41             root   html;
 42         }
 43 
 44         root /usr/local/lnmp/www/html;
 45         index index.php;
 46         #access_log /usr/local/lnmp/www/logs/lnmp-access.log main;
 47         #error_log /data0/www/logs/lnmp-error.log;
 48 
 49         if (!-e $request_filename){
 50                 rewrite ^(.*)$ /index.php?_url=$1 last;
 51         }
 52 
 53         location ~ ^.+.php {
 54                 include fastcgi_params;
 55                 fastcgi_pass 127.0.0.1:9999;
 56                 fastcgi_index index.php;
 57                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 58         }
 59 
 66     }

重新加载配置

➜  ./sbin/nginx -s reload

Mysql

1、工具准备

  • cmake:MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本。
  • bison:MySQL语法解析器需要使用bison进行编译。
  • ncurses-devel :用于终端操作的开发包。
  • zlib:MySQL使用zlib进行压缩
  • gcc/g++ :MySQL 5.6开始,需要使用g++进行编译

2、下载安装包

➜  wget http://www.cmake.org/files/v3.1/cmake-3.1.0-Linux-x86_64.tar.gz

3、安装mysql

(1)添加分组
➜  groupadd mysql
➜  useradd -r -g mysql -s /bin/false mysql
(2)编译&安装
➜  cd mysql
➜  cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=bundled -DWITH_EMBEDDED_SERVER=1
➜  make && make install
(3)配置用户组
cd /usr/local/lnmp/mysql
chown -R mysql .
chgrp -R mysql .
chown -R mysql data
scripts/mysql_install_db --user=mysql
(4)更改my.conf配置
port=6000
(5)安装系统DB
➜  scripts/mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql 
--datadir=/usr/local/lnmp/mysql/data  -defaults-file=/usr/local/lnmp/mysql/my.cnf 
(6)启动mysql和关闭
➜  ./bin/mysqld_safe --user=mysql &
➜  ./bin/mysqladmin (-S .sock文件地址 可选) -uroot -p shutdown
(7)更新密码
➜  ./bin/mysqld_safe --defaults-file=/home/work/local/mysql/etc/my.cnf --user=work &
➜  ./bin/mysqladmin (-S .sock文件地址 可选) -u root password 'new-password'
(8)连接数据库
➜  ./bin/mysql --defaults-file=/usr/local/lnmp/mysql/my.cnf (-S .sock文件地址 可选) -u root -p

PHP

1、下载安装包

➜  wget http://php.net/get/php-5.5.38.tar.gz/from/a/mirror
➜  mv mirror php-5.5.38.tar.gz
➜  tar zvxf php-5.5.38.tar.gz 
➜  lnmp mv php-5.5.38 php
➜  lnmp cd php 

2、安装

➜  php ./configure --prefix=/usr/local/lnmp/php  
--with-config-file-path=/usr/local/lnmp/php/etc  
--enable-fpm --with-fpm-user=www 
--with-fpm-group=www --with-mysql=mysqlnd 

➜  make && make install

3、配置启动

(1)修改fpm配置php-fpm.conf.default文件名称
➜  cp /usr/local/lnmp/php/php-fpm.conf.default /usr/local/lnmp/php/php-fpm.conf
(2)复制php.ini到配置文件
➜  php cp php.ini-production ./etc/php.ini   
(3)复制php-fpm启动脚本到init.d (为了防止冲突我们改一下名字)
➜  cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm5.5
(4)赋予执行权限
➜  chmod +x /etc/init.d/php-fpm5.5
(5)添加为启动项
➜  chkconfig --add php-fpm5.5
(6)设置开机启动
➜  chkconfig php-fpm5.5 on
(7)立即启动php-fpm
➜  service php-fpm5.5 start | reload | restart 

LNMP过程中遇到问题

1. cmake 出现错误

错误表现:

CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found.  Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, 
package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:127 (FIND_CURSES)
  cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
  CMakeLists.txt:257 (MYSQL_CHECK_READLINE) 
-- Configuring incomplete, errors occurred!

错误原因:

该报错原因是未安装ncurses-devel,运行下面命令:

  yum install -y ncurses-devel

删除 CmakeCache.txt 重新编译:

 rm -rf CMakeCache.txt 
 camke .

2. mysql数据库安装系统DB,没有权限

执行语句

scripts/mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql-5.6.22 --datadir=/usr/local/lnmp/mysql-5.6.22/data

错误表现:

permission denied: scripts/mysql_install_db

错误原因:
给 mysql_install_db 执行权限

chmod +x scripts/mysql_install_db

3. mysql.sock 问题

执行语句:

./bin/mysqladmin -u root password 'new-password'

错误表现:

error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

错误原因:
我们指定 -S + .socket 路径

➜  mysql-5.6.22 find / -name "mysql.sock" 
/var/lib/mysql/mysql.sock
➜  mysql-5.6.22 ./bin/mysqladmin -S /var/lib/mysql/mysql.sock -u root password '******'      
Warning: Using a password on the command line interface can be insecure.

4. nginx ./confgure 问题

执行语句

./configure --prefix=/usr/local/lnmp/nginx1.10.2   --user=www --group=www 

错误表现:

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre= option.

错误原因:
安装pcre-devel解决问题

➜  yum -y install pcre-devel

 

参考文献(感谢)

1、 http://blog.csdn.net/yanzi1225627/article/details/49123659

2、Mysql 参考文档

3、CSDN图文博客

4、http://www.cnblogs.com/xiongpq/p/3384681.html

转载请注明:碎念 » 【笔记】LNMP环境“源码”安装指南

喜欢 (3)or分享 (0)