centos php 开启libgdgd_CentOS搭建PHP环境

说明:

操作系统:CentOS 6.x

准备篇:

一、配置防火墙,开启80端口、3306端口

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)

:wq! #保存

/etc/init.d/iptables restart #重启防火墙使配置生效

四 、系统约定

软件源代码包存放位置:/usr/local/src

源码包编译安装位置:/usr/local/软件名字

五、下载软件包

pcre (支持nginx伪静态)

安装篇

安装编译工具及库文件(使用 CentOS yum 命令安装)

yum install make m4 autoconf automake curl curl-devel gcc gcc-c++ zlib-devel bison bison-devel openssl openssl-devel pcre-devel mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl libevent libcom_err-devel libsepol-devel libselinux-devel krb5-devel ncurses* bzip2-devel libxml2 libxml2-devel libpng libpng-devel freetype libfreetype-devel(改成freetype-devel) libjpeg libjpeg-devel gd gd-devel perl

安装依赖库

1、安装 pcre

cd /usr/local/src

mkdir /usr/local/pcre

tar zxvf pcre-8.36.tar.gz

cd pcre-8.36

./configure

make

make install

2、安装 zlib

cd /usr/local/src

tar xvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make

make install

3、安装 openssl

cd /usr/local/src

mkdir /usr/local/openssl

tar zxvf openssl-1.0.2c.tar.gz

cd openssl-1.0.2c

./config

make

make install

二、安装cmake (MySQL5.5以上版本采用CMAKE编译)

cd /usr/local/src

tar xvf cmake-2.8.12.2.tar.gz

cd cmake-2.8.12.2

./bootstrap

gmake

gmake install

四、安装 MySQL

准备工作

groupadd mysql #添加 mysql 用户组

useradd -g mysql mysql -s /bin/false #创建用户 mysql 并加入到 mysql 组,不允许 mysql 用户直接登录系统

mkdir -p /data/mysql/data #创建 mysql 数据库存放目录

chown -R mysql:mysql /data/mysql/data #设置 mysql 数据库目录权限

#编译安装

cd /usr/local/src

tar zxvf mysql-5.6.42.tar.gz

cd mysql-5.6.42

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql/data \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_TCP_PORT=3306

make

make install

注:cmake 时如出现错误“Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)”

执行以下操作再重新编译即可:

rm -rf CMakeCache.txt CMakeFiles/

yum install ncurses-devel

#配置

cd /usr/local/mysql

mv /etc/my.cnf /etc/my.cnf.bak

cp -f ./support-files/my-default.cnf ./my.cnf

cp ./support-files/mysql.server /etc/init.d/mysqld #加入系统启动

chmod a+x /etc/init.d/mysqld #增加执行权限

chkconfig --add mysqld

chkconfig mysqld on #加入开机启动

ln -sf /usr/local/mysql/bin/* /usr/local/bin/

#将 mysql/bin 目录加入环境变量

vi /etc/profile #在最后一行加入:

############################################################ PATH=$PATH之间不能有空格

PATH=$PATH:/usr/local/mysql/bin

export PATH

############################################################

:wq! 保存

source /etc/profile #使其生效

echo $PATH #查看是否添加成功

#初始化

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

#启动

service mysqld start

#设置 root 用户密码

方法1:

mysql -u root

mysql> SET PASSWORD = PASSWORD('123456');

方法2:

mysqladmin -u root -p password 123456

接下来会提示输入旧密码,直接回车即可。

注:方法2命令中的密码字符串外面不要加引号

#若要设置 root 用户可以远程访问,执行:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

五、安装 Nginx

groupadd www #添加www用户组

useradd -g www www -s /bin/false #创建 nginx 运行用户 www 并加入到 www 组,不允许 www 用户直接登录系统

cd /usr/local/src

tar zxvf nginx-1.9.2.tar.gz

cd nginx-1.9.2

./configure \

--prefix=/usr/local/nginx \

--user=www \

--group=www \

--with-pcre=/usr/local/src/pcre-8.36 \

--with-zlib=/usr/local/src/zlib-1.2.8 \

--with-openssl=/usr/local/src/openssl-1.0.2c \

--with-http_ssl_module

make

make install

注: --with-pcre --with-zlib --with-openssl 指向的是源码包解压后的路径,而不是安装的路径。

配置nginx开机启动

vi /etc/init.d/nginx #编辑启动文件并添加下面内容

############################################################

#!/bin/bash

# nginx Startup script for the Nginx HTTP Server

# it is v.0.0.2 version.

# chkconfig: - 85 15

# description: Nginx is a high-performance web and proxy server.

# It has a lot of features, but it's not for everyone.

# processname: nginx

# pidfile:     /var/run/nginx.pid

# config:      /usr/local/nginx/conf/nginx.conf

nginxd=/usr/local/nginx/sbin/nginx

nginx_config=/usr/local/nginx/conf/nginx.conf

nginx_pid=/usr/local/nginx/logs/nginx.pid

RETVAL=0

prog="nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x $nginxd ] || exit 0

# Start nginx daemons functions.

start() {

if [ -e $nginx_pid ];then

echo "nginx already running...."

exit 1

fi

echo -n $"Starting $prog: "

daemon $nginxd -c ${nginx_config}

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx

return $RETVAL

}

# Stop nginx daemons functions.

stop() {

echo -n $"Stopping $prog: "

killproc $nginxd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid

}

reload() {

echo -n $"Reloading $prog: "

#kill -HUP `cat ${nginx_pid}`

killproc $nginxd -HUP

RETVAL=$?

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

stop

start

;;

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $prog {start|stop|restart|reload|status|help}"

exit 1

esac

exit $RETVAL

############################################################

:wq! 保存退出。

chmod +x /etc/init.d/nginx #赋予执行权限

/sbin/chkconfig nginx on #设置开机启动

#启动

service nginx start

六、安装 PHP

安装 libmcrypt

cd /usr/local/src

tar zxvf libmcrypt-2.5.7.tar.gz

cd libmcrypt-2.5.7

./configure

make

make install

注:编译时如提示 'Pyobject' undeclared... 错误,需先安装 python-devel 软件包(yum -y install python-devel),

安装 php

cd /usr/local/src

tar zxvf php-5.4.42.tar.gz

cd php-5.4.42

./configure \

--prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-zlib \

--with-gd \

--with-png-dir \

--with-jpeg-dir \

--with-freetype-dir \

--enable-gd-native-ttf \

--with-iconv \

--enable-xml \

--enable-bcmath \ #支持大整数计算的扩展

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curlwrappers \

--enable-mbregex  \

--enable-fpm \

--enable-mbstring \

--with-openssl \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--without-pear \

--with-gettext=shared \

--enable-session \

--with-mcrypt \

--with-curl

make #编译

make install #安装

cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录

rm -rf /etc/php.ini #删除系统自带配置文件

ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

vi /usr/local/php/etc/php-fpm.conf

pid = run/php-fpm.pid #取消前面的分号

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

设置 php-fpm 开机启动

cp /usr/local/src/php-5.4.42/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #拷贝php-fpm到启动目录

chmod +x /etc/init.d/php-fpm #添加执行权限

chkconfig php-fpm on #设置开机启动

PHP 配置

vi /usr/local/php/etc/php.ini #编辑配置文件

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

下面红色部分未做修改。

修改为:expose_php = OFF #禁止显示php版本的信息

找到:display_errors = On

修改为:display_errors = OFF #关闭错误提示

七、配置 nginx 支持 php

vi /usr/local/nginx/conf/nginx.conf

修改/usr/local/nginx/conf/nginx.conf 配置文件,做如下修改

user www www; #首行user去掉注释,修改 Nginx 运行组为 www www;尽量与 /usr/local/php5/etc/php-fpm.conf 中的 user, group 配置相同,否则php可能运行出错

index index.php index.html index.htm; #添加index.php

#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include         fastcgi_params;

fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param   SCRIPT_NAME          $fastcgi_script_name;

}

/etc/init.d/nginx restart #重启nginx

安装 php redis 扩展

cd /usr/local/src

tar zxvf redis-2.2.7.tgz

cd redis-2.2.7

/usr/local/php/bin/phpize

./configure  --with-php-config=/usr/local/php/bin/php-config

make  &&  make  install

修改 php.ini 文件:

vi /usr/local/php/etc/php.ini

增加:

extension=redis.so

/etc/init.d/php-fpm restart  #重启 php-fpm 生效

安装 php memcached 扩展

安装依赖库 libmemcached

cd /usr/local/src

tar zxvf libmemcached-1.0.18.tar.gz

cd libmemcached-1.0.18

./configure --with-memcached

make

make install

安装 memcached 扩展

cd /usr/local/src

cd memcache-2.2.0

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcached --disable-memcached-sasl

make

make install

修改 php.ini 文件:

vi /usr/local/php/etc/php.ini

增加:

extension=memcached.so

/etc/init.d/php-fpm restart  #重启 php-fpm 生效

安装 php memcache 扩展

cd /usr/local/src

wget http://pecl.php.net/get/memcache-3.0.8.tgz

tar zxvf memcache-3.0.8.tgz

cd memcache-3.0.8

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install

修改 php.ini 文件:

vi /usr/local/php/etc/php.ini

增加:

extension=memcache.so

/etc/init.d/php-fpm restart  #重启 php-fpm 生效

安装 php Zend Opcache 扩展(即 Optimizer+,推荐加速器)

cd /usr/local/src

wget http://pecl.php.net/get/zendopcache-7.0.5.tgz

tar zxvf zendopcache-7.0.5.tgz

cd zendopcache-7.0.5

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --enable-shared

make

make install

修改 php.ini 文件:

vi /usr/local/php/etc/php.ini

增加:

zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/opcache.so

opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

opcache.revalidate_freq=60

opcache.fast_shutdown=1

opcache.enable_cli=1

/etc/init.d/php-fpm restart  #重启 php-fpm 生效

注:Zend Opcache 与 eAccelerator 相冲突,安装使用 Zend Opcache 可能需要先卸载或禁用 eaccelerator 扩展。

六、安装 Redis

安装需要的支持环境

cd /usr/local/src

wget http://downloads.sourceforge.net/tcl/tcl8.6.4-src.tar.gz

tar zxvf tcl8.6.4-src.tar.gz

cd ​tcl8.6.3/unix/

./configure

make

make install

安装 Redis

cd /usr/local/src

tar zxvf redis-3.0.2.tar.gz

cd redis-3.0.2

make

make PREFIX=/usr/local/redis install

ln -sf /usr/local/redis/bin/* /usr/local/bin/ #增加软链接

cp ./redis.conf /usr/local/redis/

vi /usr/local/redis/redis.conf

daemonize yes  #redis将以守护进程的方式运行,默认为no会暂用你的终端

timeout 300​  #当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

设置自动启动

vi /etc/init.d/redis

############################################################

#!/bin/sh

#

# redis        Startup script for Redis Server

#

# chkconfig: - 80 12

# description: Redis is an open source, advanced key-value store.

#

# processname: redis-server

# config: /etc/redis.conf

# pidfile: /var/run/redis.pid

source /etc/init.d/functions

BIN="/usr/local/redis/bin"

CONFIG="/usr/local/redis/redis.conf"

PIDFILE="/var/run/redis.pid"

### Read configuration

[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0

prog="redis-server"

desc="Redis Server"

start() {

if [ -e $PIDFILE ];then

echo "$desc already running...."

exit 1

fi

echo -n $"Starting $desc: "

daemon $BIN/$prog $CONFIG

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

return $RETVAL

}

stop() {

echo -n $"Stop $desc: "

killproc $prog

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE

return $RETVAL

}

restart() {

stop

start

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

condrestart)

[ -e /var/lock/subsys/$prog ] && restart

RETVAL=$?

;;

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $0 {start|stop|restart|condrestart|status}"

RETVAL=1

esac

exit $RETVAL

############################################################

:wq! 保存退出。

chmod +x /etc/init.d/redis #赋予执行权限

启动或关闭服务

service redis start

service redis stop

测试

cd /usr/local/redis/bin

./redis-cli

127.0.0.1:6379> set foo bar

OK

127.0.0.1:6379> get foo

"bar"

安装到这里。

安装 git

cd /usr/local/src

wget https://codeload.github.com/git/git/tar.gz/v2.4.4

tar zxvf v2.4.4

cd git-2.4.4

make prefix=/usr/local/git all // 需要yum安装 openssl-devel

make prefix=/usr/local/git install

注:若出现错误 “错误:‘XML_Parser’未声明”,则需安装 expat-devel 开发包,然后重新执行 make 命令。

yum -y install expat-devel.x86_64

若出现错误 “asciidoc: command not found”,则需安装 asciidoc,然后重新执行 make 命令。

yum -y install asciidoc

git --version  #查看版本

安装 Memcache

安装 libevent

cd /usr/local/src

tar zxvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

./configure --prefix=/usr/local/libevent

make

make install

安装 memcache

cd /usr/local/src

tar zxvf memcached-1.4.24.tar.gz

cd memcached-1.4.24

./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

make

make install

ln -s /usr/local/memcached/bin/memcached /usr/local/bin/memcached

启动

memcached -d -m 512 -u root -p 11211 -c 1024 -P /tmp/memcached.pid

启动参数说明:

-d 选项是启动一个守护进程。

-u root 表示启动 memcached 的用户为 root

-m 是分配给 Memcache 使用的内存数量,单位是MB,默认64MB

-M return error on memory exhausted (rather than removing items)

-u 是运行 Memcache 的用户,如果当前为 root 的话,需要使用此参数指定用户

-p 是设置 Memcache 的 TCP 监听的端口,默认为11211

-c 选项是最大运行的并发连接数,默认是1024

-P 是设置保存 Memcache 的 pid 文件

停止

先查看进程 id

ps -ef|grep memcached

root    15144    1  0 08:43 ?        00:00:00 /usr/local/memcached/bin/memcached -d -m 512 -u root -p 11211 -c 1024 -P /tmp/memcached.pid

15144 为pid

则停止命令为:kill -9 15144

测试篇

cd /usr/local/nginx/html

rm -rf /usr/local/nginx/html/*  #删除默认测试页

echo "<?php  phpinfo(); ?>" >> /usr/local/nginx/html/index.php

chown -R www.www /usr/local/nginx/html/  #设置目录所有者

chmod -R 700 /usr/local/nginx/html/  #设置目录权限

在客户端浏览器输入服务器 IP 地址,可以看到相关的配置信息

service nginx restart  #重启nginx

service mysqld restart  #重启mysql

service php-fpm start  #启动php-fpm

service php-fpm restart #重启php-fpm

service php-fpm stop #停止php-fpm

service php-fpm start #启动php-fpm

##############################################

备注:

nginx 默认站点目录是:/usr/local/nginx/html/

权限设置:chown www.www /usr/local/nginx/html/ -R

MySQL 数据库目录是:/data/mysql/data

权限设置:

chwon -R www:www /data/www

chown -R mysql.mysql /data/mysql/data

到此,运行环境搭建完成。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值