从源码编译nginx1.8.0 php5.6.8 mysql5.6.24

来源:互联网 发布:代理淘宝开店 编辑:程序博客网 时间:2024/05/29 19:07

网上关于mysq nginx php 的安装教程很多,但是我在按照他们的教程安装的时候,总是会遇到各种问题,但是作者并没有指出解决办法,然后各种google之后,参考所有人的过程,终于安装成功,记录下来!

1 下载MySQL ngin php 源码包,然后我是解压到/home/cg/my/myapp/下面。

nginx :

安装Nginx前需要安装依赖库PCRE库、zlib库、SSL库
安装PCRE库——为了rewrite
tar –zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure –prefix=/usr/local/pcre-8.35
make
make install
安装zlib库——为了gzip压缩
tar –zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure –prefix=/usr/local/zlib-1.2.8
make
make install
安装ssl库——支持ssl加密
tar -zxvf openssl-1.0.2a.tar.gz
cd openssl-1.0.2a
./config –prefix=/usr/local/openssl-1.0.2a
make
make install
安装nginx——服务器软件

./configure –prefix=/usr/local/nginx-1.8.0 \
–with-pcre=../pcre-8.35 \
–with-zlib=../zlib-1.2.8 \
–with-openssl=../openssl-1.0.2a \

make
make install

/usr/local/nginx-1.8.0/sbin# ./nginx -c /usr/local/nginx-1.8.0/conf/nginx.conf
/usr/local/nginx-1.8.0/sbin# ./nginx -s reload
查看nginx进程
ps –ef|grep nginx

mysql:

mysql 从5.5版本之后不是用./configure ,而是用cmake,所以需要安装cmake , sudo apt-get instal cmake

我是安装在/home/cg/my/server/mysql目录下,我一直也有个疑问为什么大家都喜欢安装到/uer/local下面,这样重装系统之后不就什么都没有了吗??可能所大家都互相抄的原因吧,抄成了习惯。

cd //home/cg/my/myapp/mysql-5.6.24
cmake \
-DCMAKE_INSTALL_PREFIX=/home/cg/my/server/mysql \
-DSYSCONFDIR=/home/cg/my/server/mysql \
-DMYSQL_DATADIR=/home/cg/my/server/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DEXTRA_CHARSETS=all
如果想知道参数到意思,可以去看官方文档,或者这里有个较为详细到总结:。这里我大概说下意思。
DCMAKE_INSTALL_PREFIX 安装目录
DSYSCONFDIR 配置文件(my.cnf)目录
DMYSQL_DATADIR 数据存储目录
DMYSQL_TCP_PORT TCP/IP端口
DMYSQL_UNIX_ADDR UNIX socket文件
DEXTRA_CHARSETS 扩展字符支持 默认all

如果配置报错,可能需要安装libssl-dev,libncurses5-dev,第一次配置报错,第二次配置前,需要删除源码目录下的CMakeCache.txt,再配置。

编译,安装
make
make install

初始化数据库:
cd /usr/local/mysql-5.6.24
chmod 755 scripts/mysql_install_db

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

复制启动脚本,开机自启:
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod 755 /etc/init.d/mysql

手动启动
sudo /etc/init.d/mysql start
PS:如果遇到 . * The server quit without updating PID file (/home/cg/my/server/mysql/data/cg-Lenovo-G470.pid).
这样到问题(我遇到过)。
(1)新建运行Mysql的用户和组
sudo groupadd mysql
sudo useradd -g mysql mysql

(2)设置Mysql安装目录的权限
cd /home/cg/my/server/mysql
sudo chown -R mysql:mysql ./

(3)修改配置文件 my.cnf
配置文件在的地方在cmake参数里面
在下面添加

[client]
port = 3306
socket = /home/cg/my/server/mysql/data/mysql.sock

[mysqld]
port = 3306
socket = /home/cg/my/server/mysql/data/mysql.sock
basedir = /home/cg/my/server/mysql
datadir = /home/cg/my/server/mysql/data
OK
sudo mysql start 成功!

更改root密码:

/home/cg/my/server/mysql/bin/mysqladmin -u root password ‘123456’

启动
sudo mysql start

不过想要直接在终端运行 mysql -u root -p 会提示The program ‘mysql’ can be found in the following packages:
解决办法
$ ‘/home/cg/my/server/mysql/bin/mysql’ -u root -p 即可。

配置环境变量
为了直接调用mysql,需要将mysql的bin目录加入PATH环境变量。
编辑/etc/profile文件:
sudo vim /etc/profile
在文件最后 添加如下两行:
PATH=$PATH:/usr/local/mysql/bin
export PATH
关闭文件,运行下面的命令,让配置立即生效:
source /etc/profile

修改root密码(因为默认密码为空)
mysql -h127.0.0.1 -uroot -p
update mysql.user set password=password(“mysqldba”) where user=’root’;
flush privileges;

测试一下:

select now(),user(),version();
show databases;

PHP:

./configure –prefix=/usr/local/php-5.6.8 \
–enable-fpm \
–enable-sockets \
–enable-mbstring \
–with-config-file-path=/usr/local/php-5.6.8/etc \
–with-mysql=/usr/local/mysql-5.6.24 \
–with-mysqli=/usr/local/mysql-5.6.24/bin/mysql_config \
–with-pdo-mysql=/usr/local/mysql-5.6.24 \
–with-curl \
–with-openssl=/usr/local/openssl-1.0.2a \
–with-libxml-dir=/usr/include/libxml2

configure php.ini
cp /home/cg/my/myapp/php5.6.8/php.ini.de* /usr/local/php-5.6.8/php.ini
cd /usr/local/php-5.6.8/etc

configure php-fpm.conf.default

mv php-fpm.conf.default php-fpm.conf

配置fpm
cd /usr/local/php-5.6.8/sbin

vim ../etc/php-fpm.conf

这里仅做简单配置,下面会有PHP-FPM的详细的优化配置讲解

pid = run/php-fpm.pid
error_log = log/php-fpm.log
listen = 127.0.0.1:9000
pm.max_children = 40
pm.start_servers = 12
pm.min_spare_servers = 4
pm.max_spare_servers = 20
pm.max_requests = 1000

/usr/local/php-5.6.8/sbin/php-fpm -c /usr/local/php-5.6.8/etc/php.ini -y/usr/local/php-5.6.8/etc/php-fpm.conf

测试是否成功
/usr/local/php/sbin/php-fpm-t

php-fpm 5.4.7 如何关闭 重启

php 5.4.7 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:

master进程可以理解以下信号

INT, TERM 立刻终止 QUIT 平滑终止 USR1 重新打开日志文件 USR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:

php-fpm 关闭:

kill -INT cat /usr/local/php/var/run/php-fpm.pid

php-fpm 重启:

kill -USR2 cat /usr/local/php/var/run/php-fpm.pid

查看php-fpm进程数:

ps aux | grep -c php-fpm

命令行下执行php,提示找不到命令

-bash: /usr/bin/php: No such file or directory

vi /etc/profile

在文件底部增加一行配置
export PATH=/usr/local/php/bin:$PATH

保存退出

source /etc/profile

0 0