IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    Vlix_Liu发表于 2015-06-24 07:24:12
    love 0

    网上关于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/
    • 1

    复制启动脚本,开机自启:
    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



沪ICP备19023445号-2号
友情链接