在环境搭建之前,最好先确定目录的结构,比如源码安装在/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

  1. 关于网站权限问题,可以有如下方案:
  • 如上所说,网站由www用户管理,apache用户加入www组, 其他用户没有任何权限
  • 网站由www用户管理,组和其他人不给任何权限,用acl去单独给apache用户添加权限。
  • 不做任何处理,apache用户视作其他用户,给rx权限。内部需要w权限的目录单独设置。
  1. 别忘了重启, 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 
  1. 关于编译选项的含义,可以参考php手册,也可以参考 这篇文章
  2. 安装完成后,需要做一下操作:
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
  1. 此时libphp7.so已经编译生成,在httpd.conf里添加 AddType application/x-httpd.php .php

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

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

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 参数。


laokiea
657 声望5 粉丝

[链接]