阿里云Esc-PHP开发环境搭建

在环境搭建之前,最好先确定目录的结构,比如源码安装在/usr/local/src,应用安装在/usr/local

1. 编译安装apache

编译安装apache之前,需要先编译几个apache运行时需要依赖的组件,官网下载地址,下面依次介绍: 1 . Apr

编译步骤如下

cd /usr/local/src wget

http://apache.forsale.plus//apr/apr-1.6.3.tar.gz

tar -zxvf apr-1.6.3.tar.gz cd apr-1.6.3

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

make && make install


2 . Apr-Util

编译步骤如下

wget http://apache.forsale.plus//apr/apr-util-1.6.1.tar.gz

tar -zxvf apr-util-1.6.1.tar.gz cd apr-util-1.6.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install

3 . Pcre

编译步骤如下

wget https://sourceforge.net/projects/pcre/files/pcre/8.41/pcre-8.41.tar.gz/download

tar -zxvf download

cd pcre-8.41

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

make && make install

上面几个编译安装完后,就可以安装apache了,安装步骤类似,如下:

wget http://apache.mirror.colo-serv.net//httpd/

tar -zxvf httpd-2.4.29.tar.gz

cd httpd-2.4.29

./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

make && make install

注意事项:
  1. 如果是重新编译安装,编译前执行make clean, 避免一些不必要的错误。
  2. 安装完后,修改配置文件,将 ServerName 更改成 127.0.0.1:80DocumentRoot 更改成对应的 web根目录 ,将 vhost 的配置文件的注释打开: **Include conf/extra/httpd-vhosts.conf ** 。
  3. 此时/usr/local/apache/modules的目录下,是没有libphp7.so这个扩展的,需要等php安装完后,才会自动生成。
  4. 一般需要给apache运行用户daemon分配一个额外的组,比如www用户所属组(www用户专门用于管理web,以及ftp登陆),方便日后的权限管理。

useradd www

usermod daemon -g www

chown -R www:www /网站根目录

chmod -R 770 /网站根目录

然后将配置文件中的 Group 更改成 www

5. 关于网站权限问题,可以有如下方案:

– 如上所说,网站由www用户管理,apache用户加入www组, 其他用户没有任何权限

– 网站由www用户管理,组和其他人不给任何权限,用acl去单独给apache用户添加权限。

– 不做任何处理,apache用户视作其他用户,给rx权限。内部需要w权限的目录单独设置。

6. 别忘了重启,httpd -k restart

2. 编译安装php7.2

编译步骤如下:

wget http://cn2.php.net/get/php-7.2.0.tar.gz/from/this/mirror

tar -zxvf mirrow

cd php-7.2.0

./configure ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/lib --with-apxs2=/usr/local/apache/bin/apxs --with-mhash --with-openssl --with-mysqli --with-pdo-mysql --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --enable-debug --enable-shared --enable-xml --enable-bcmath --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --enable-soap --enable-session --with-curl --enable-opcache

make && make install

注意事项:
  1. 如果是重新编译安装,编译前执行make clean
  2. 在编译安装之前,最好先保证依赖的一些扩展已经安装,可以执行:

yum -y install gcc gcc++ gcc-c++ wget make autoconf bison libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel

3. 关于编译选项的含义,可以参考php手册,也可以参考 这篇文章

4. 安装完成后,需要做一下操作:

cp /usr/local/src/php-7.2.0/php.ini-development /usr/local/php/lib/php.ini # 复制配置文件

cp /usr/local/php7/bin/php /usr/bin/php

cp /usr/local/php7/bin/phpize /usr/bin/phpize

5. 此时libphp7.so已经编译生成,在httpd.conf里添加 AddType application/x-httpd.php .php

echo "AddType application/x-httpd.php .php" >> /usr/local/apache/conf/httpd.conf

 注:这句话既是指定php文件处理器,又是指定php文件mime-type

3. 编译安装redis,mongodb

1 . redis 首先从github上clone源码, 地址, 安装步骤如下:

git clone https://github.com/phpredis/phpredis.git

cd phpredis phpize

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

make && make install

echo "extension=redis.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

2 . mongodb mongodb可以使用pecl安装:

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

注意事项
  1. 编译后的.so文件默认是放在 extension_dir 目录中,可以使用php -i | grep 'extension_dir' 查看,也可以更改php.ini中的设置。
  2. 可以使用php -m查看已经加载的module

4. 安装mysql

如果需要在服务器上安装mysql,可以参考这篇文章

5. ossftp

参考github

注意事项

如果挂载的目录,允许其他人查看,可以在挂载的时候指定 -o allow_ohter 参数。