centos编译安装php开发环境

black_OX black_OX     2022-08-01     654

关键词:

CentOS编译安装PHP开发环境


最近在安装服务器开发环境, 踩了不少坑, 这里总结下来. yum安装虽然简单, 却不灵活, 版本也比较老旧不合符设计中的选型, 因此只使用yum安装一些依赖库, 目标软件采用编译安装.

目录

安装PHP

yum安装依赖库

yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison  libtool-ltdl-devel libiconv libmcrypt mhash mcrypt pcre-devel openssl-devel freetype-devel libcurl-devel

安装PHP7.0.9

#先下载PHP
cd /tmp
wget http://cn2.php.net/distributions/php-7.0.9.tar.gz
tar -zxvf php-7.0.9.tar.gz
cd php-7.0.9.tar.gz

#我们先配置下PHP的编译参数
./configure --prefix=/usr/local/php  
--with-mysql  
--with-mysqli  
--with-pdo_mysql  
--with-iconv-dir  
--with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-freetype-dir=/usr/lib64

#编译 
make
make install clean

#复制php.ini
cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

#运行php-fpm
/usr/local/php/sbin/php-fpm

#将php命令加入到全局
vi /root/.bash_profile 

#将/usr/local/php/bin 加到后面,用:隔开
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/php/bin

#重启
source /root/.bash_profile

php-fpm的启动脚本

PHP7安装包里自带了启动脚本:

cp /tmp/php-7.0.9/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cd /etc/init.d
chmod +x php-fpm

然后就可以启动,停止重启等操作了:

service php-fpm restart

安装PHP扩展

PHP扩展的安装都是利用phpize, 这里用redis举例

下载扩展

http://pecl.php.net

安装

tar -zxvf redis-3.0.1.tgz  
cd redis-3.0.1  
phpize   
./configure --with-php-config=/usr/local/php/bin/php-config   
make && make install  

修改php.ini

extension=redis.so

重启php-fpm

kill `cat /var/run/php-fpm.pid ` && /usr/local/php/sbin/php-fpm 

安装Phalcon框架

phalcon作为PHP的扩展存在, 理应可以使用phpize安装的, 但是试过几次, 依赖的东东比较难搞, 还是使用官方给出的安装器:

编译安装

git clone git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install

其中遇到gcc报错, 是因为虚拟机内存太小, 后来加了一个swap分区解决了.

修改php.ini

extension=phalcon.so

安装Nginx

安装nginx的依赖包

nginx 依赖于 zlib pcre ssl 三个模块,安装之前要先安装它们

cd /lamp 
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
make install 

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz
tar -zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure
make
make install 

wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
tar zxvf openssl-1.0.2.tar.gz
cd openssl-1.0.2.tar.gz
./config  # 注意是config,不是configure
make
make install 

安装nginx

# 下载
wget http://nginx.org/download/nginx-1.11.3.tar.gz
tar -zxvf nginx-1.11.3.tar.gz
cd nginx-1.11.3.tar.gz

# 编译
# 这3个扩展的目录是他们的源代码目录,不是安装目录,这点很容易搞错
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/lamp/pcre-8.32 --with-zlib=/lamp/zlib-1.2.7 --with-openssl=/lamp/openssl-1.0.2
make && make install

#启动
/usr/local/nginx/nginx

#查看端口
netstat -tnl|grep 8080

#访问
curl http://localhost:8080

开机自启动

开机启动的配置文件是:/etc/rc.local ,vi加入 /usr/local/nginx/nginx 即可

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don‘t
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/apache/bin/apachectl start
/usr/local/bin/redis-server /etc/redis.conf
/usr/local/php/sbin/php-fpm
/usr/local/nginx/nginx

开启nginx的iptables限制

我们在本地访问127.0.0.1:8080/index.php,是可以打开的。 但是如果,在另外一台机子上访问:http://192.168.155.128:8080/index.php 不能访问,可能是这个8080端口号没有加入到iptables的白名单,所以需要加一下:

(PS: 如果你的nginx端口号是80,应该是已经在iptables白名单中了,如果能访问就不需要加了)

iptables的配置文件在这:/etc/sysconfig/iptables

我们vi 打开下,然后在倒数第二行上面加入:-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 然后,重启下 iptables

service iptables restart

安装MySQL

cd /tmp
#先下载mysql 
http://dev.mysql.com/Downloads/mysql/mysql-5.7.14.tar.gz
tar zxvf mysql-5.7.14.tar.gz
cd mysql-5.7.14

#cmake配置下
cmake  
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql   #安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data     #数据库存放目录
-DDEFAULT_CHARSET=utf8                    #使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci       #校验字符
-DEXTRA_CHARSETS=all                      #安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1                   #允许从本地导入数据

#编译安装
make && make install

#创建mysql用户和用户组
groupadd mysql
useradd -r -g mysql mysql

#给mysql目录设置目录权限
chown -R mysql:mysql /usr/local/mysql

#将mysql的启动服务添加到系统服务中
cd /usr/local/mysql/
cp support-files/my-default.cnf /etc/my.cnf

#创建系统数据库的表
cd scripts/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

#复制mysql管理脚本到系统服务目录
cd /opt/mysql/support-files
cp mysql.server /etc/rc.d/init.d/mysql

#添加mysql命令到系统服务命令
chkconfig --add mysql

#加入开机启动策略
chkconfig mysql on
service mysql start

#以后就可以调用service 命令来管理mysql
service mysql start
service mysql stop
service mysql restart

#将mysql命令加入全局可用
vi /root/.bash_profile
#在PATH=$PATH:$HOME/bin添加参数为:
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
#重新生效
source /root/.bash_profile

#修改root密码
mysql -u root mysql
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "root";  //为root添加远程连接的能力。
mysql>update user set Password = password(‘12346‘) where User=‘root‘;
mysql>select Host,User,Password  from user where User=‘root‘; 
mysql>flush privileges;
mysql>exit
#重新登录:
mysql -uroot -p123456

安装MongoDB

下载解压

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.4.tgz
tar -zxvf mongodb-linux-x86_64-2.6.4.tgz -C /usr/src
cd mongodb-linux-x86_64-2.6.4

创建数据库和日志的目录

mkdir log
mkdir db

以后台方式启动

./bin/mongod --dbpath=./db --logpath=./log/mongodb.log --fork --auth

设置开机启动

echo "/usr/src/mongodb-linux-x86_64-2.6.4/bin/mongod --dbpath=/usr/src/mongodb-linux-x86_64-2.6.4/db --logpath=/usr/src/mongodb-linux-x86_64-2.6.4/log/mongodb.log --fork --auth" >> /etc/rc.local

查看端口

netstat -nalupt | grep mongo

安装Redis

安装

#下载解压
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
tar xzf redis-3.0.3.tar.gz
cd redis-3.0.3

#编译
make
make install

修改redis.conf

daemonize yes
loglevel notice
logfile /var/log/redis.log
dir ./

设置系统的overcommit_memory, vi /etc/sysctl.conf

vm.overcommit_memory = 1 

执行:

sysctl vm.overcommit_memory=1

添加启动脚本

#!/bin/sh
#
# redis        Startup script for Redis Server
#
# chkconfig: - 90 10
# description: Redis is an open source, advanced key-value store. 
#
# processname: redis-server
# config: /etc/redis.conf
# pidfile: /var/run/redis.pid
 
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
 
PIDFILE=/var/run/redis.pid
CONF="/usr/src/redis-3.0.3/redis.conf"
 
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ] 
        then 
              echo "Redis is running..."
        fi 
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac
chmod +x /etc/init.d/redis
chkconfig --add redis
# 加入开机启动
chkconfig redis on

请教如何在centos下安装c/c++编译,开发环境

...章进行安装.另外,既然进行C/C++开发,自然要安装相应的编译器及工具链,在CentOS下可以使用yum来安装yuminstallgccgcc-c++至此基本上已经大功告成,可以运行解压缩后的Eclipse,根据向导建立一个C++的HelloWord!测试一下是否可以编译... 查看详情

centos6.5编译安装zabbix3.0.5,编译安装zabbix_agent客户端

...zabbix3.0要求提供PHP5.5以上版本。这里可以查看这篇文章:编译安装LAMP环境还需要重新编译PHP5.5,主要是提供最后三个参数。#编译前先安装如下开发组件# yum groupinstall "Development tools"& 查看详情

编译安装lamp

软件包链接:http://pan.baidu.com/s/1mijn44g  密码:abja 系统环境:centos7开发环境:Developmenttools、ServerPlatformDevelopmenthttp+php的方式:PHP模块化个程序版本:mariadbmariadb-5.5.46-linux-x86_64.tar.gzhttphttpd-2.4. 查看详情

centos6.5编译安装lamp

一、前言1、环境说明基础环境Linux+Apache+MySQL+PHPlinux:6.5Apache2.2.12mysql:5.6.17php:5.5.122、部署说明php安装目录:/usr/local/phpphp.ini配置文件路径:/usr/local/php/etc/php.iniApache安装目录:/usr/local/nginx二、准备工作1、最小化安装Centos6.5建... 查看详情

安装apachenginx和php-基于centos7环境(代码片段)

...理。使用的软件:putty或Xshell都可。 一、搭建Apache1、编译安装(1)、安装编译器yuminstall-ygcc (2)安装Opensll查询官网得到OpenSSL下载网址https://www.openssl.org/source/openss 查看详情

centos7.2编译安装lnmp

一、前言1、环境说明基础环境Linux+Nginx+MySQL+PHPlinux:7.2nginx:1.10.2mysql:5.6.17php:5.5.122、部署说明php安装目录:/usr/local/phpphp.ini配置文件路径:/usr/local/php/etc/php.iniNginx安装目录:/usr/local/nginxNginx配置文件路径:/etc/nginx/nginx 查看详情

centos7安装开发者环境(代码片段)

...grantbox中安装了基本的centos7的box,但是,该环境没有安装编译软件,所以要求自行安装。1、查看群组安装的源包数量: yumgrouplist,搜索Development关键字: yumgropulist|grepDevelopment,得到:[[email protected]~]$yumgrouplist|grepDeve... 查看详情

centos7一键编译安装lnmp环境

#!/bin/sh#!/bin/sh#author: vim#qq: 82996821#OS: Centos7.2#filename: auto_install_lnmp.sh#init variablePHP_VERSION=‘7.0.20‘    #PHP版本号NGINX_VERSION=‘1.10.3‘ 查看详情

如何在centos7上安装docker

在编译docker代码之前肯定需要研究一下docker的代码结构以及官方推荐的方式,因为docker是开源的,所以很多第三方开发者参与。那么官方肯定会给出开发环境搭建的文档,所以拿到代码肯定先研究官方的编译方法。通过文档和代... 查看详情

centos5/6编译安装lamp

一、环境说明准备 本次使用CentOS5.5、Centos6.5,编译安装Apache2.4.20、Mysql-5.5.48、PHP-5.5.30。      编译PHP以Apache模块方式运行。编译PHP前需要先编译好Apache和Mysql。1.关闭SELINUX,配置yum源。setenforce 0sed - 查看详情

lamp环境搭建教程

...出截图。备注:服务器系统采用最小化安装,安装一下GCC编译工具和一个桌面即可 查看详情

基于centos6.8平台最新源代码包编译安装lnmp环境搭建(nginx+mysql+php)

部署环境系统:CentOS6.8x86_64Nginx:1.11.3MySQL:5.7.14PHP:7.0.10pcre:8.39zlib:1.2.8openssl:1.0.1tfreetype:2.6.5libmcrypt:2.5.8boost:1.59.0cmake:3.6.1部署准备使用客户机浏览器访问freetype官网 https://www.freetype.org/&nbs 查看详情

centos5/6编译安装lamp

一、环境说明准备本次使用CentOS5.5、Centos6.5,编译安装Apache2.4.20、Mysql-5.5.48、PHP-5.5.30。      编译PHP以Apache模块方式运行。编译PHP前需要先编译好Apache和Mysql。1.关闭SELINUX,配置yum源。setenforce 0sed -i 查看详情

centos6.8源码编译安装zabbix3.4.1

一、安装系统环境Zabbix服务器运行环境为Linux+PHP+Nginx+MySQL,以下为安装详细版本环境:Centos6.8+PHP7.1.8+Nginx1.10.0+MySQL5.7.17+Zabbix3.4.1其次,关闭防火墙和SELINUXserviceiptbalesstopsetenforce0二、安装配置Zabbix1)先安装Zabbix需要的插件yuminstall... 查看详情

centos6.8系统部署lnmp环境

...主要适用于Web开发领域的一种脚本语言。基本流程1.准备编译环境2.安装nginx3.安装mysql4.安装php-fpm5.测试访问 查看详情

gcentos安装开发环境

...(我用的win7x64)安装VM12在VM12下安装CentOS,安装完毕,为编译C代码,需要安装gcc。步骤:1、打开终端2、输入[[email protected]~]#yuminstallgcc即可自动安装,安装过程中会在包、架构、版本、源和大小确定的情况下, 查看详情

开发环境搭建(lnmp)

...搭建环境:Centos7+mysql5.6+php7废话少说,直接上干货 1.安装mysql5.*与centos6不同,centos7必须使用社区仓库来按章mysql如果使用yuminstallmysql 默认会安装MariaDB数据库所以,安 查看详情

centos6.8安装cacti

    cacti环境基于LAMP,本实验LAMP环境已编译安装成功。若直接yum安装cacti环境会把httpd,mysql,php也yum安装,与我们编译安装的LAMP环境造成冲突,所以本次实验只安装cacti,rrdtool,net-snmp.    安装rrdtoolyum&nb... 查看详情