在环境搭建之前,最好先确定目录的结构,比如源码安装在/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
注意事项:
- 如果是重新编译安装,编译前执行
make clean
, 避免一些不必要的错误。 - 安装完后,修改配置文件,将 ServerName 更改成 127.0.0.1:80 , DocumentRoot 更改成对应的 web根目录 ,将 vhost 的配置文件的注释打开: Include conf/extra/httpd-vhosts.conf 。
- 此时/usr/local/apache/modules的目录下,是没有libphp7.so这个扩展的,需要等php安装完后,才会自动生成。
- 一般需要给apache运行用户daemon分配一个额外的组,比如www用户所属组(www用户专门用于管理web,以及ftp登陆),方便日后的权限管理。
useradd www
usermod daemon -g www
chown -R www:www /网站根目录
chmod -R 770 /网站根目录
然后将配置文件中的 Group 更改成 www
- 关于网站权限问题,可以有如下方案:
- 如上所说,网站由www用户管理,apache用户加入www组, 其他用户没有任何权限
- 网站由www用户管理,组和其他人不给任何权限,用acl去单独给apache用户添加权限。
- 不做任何处理,apache用户视作其他用户,给rx权限。内部需要w权限的目录单独设置。
- 别忘了重启,
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
注意事项:
- 如果是重新编译安装,编译前执行
make clean
。 - 在编译安装之前,最好先保证依赖的一些扩展已经安装,可以执行:
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
- 关于编译选项的含义,可以参考php手册,也可以参考 这篇文章。
- 安装完成后,需要做一下操作:
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
- 此时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*||"`
注意事项
- 编译后的.so文件默认是放在 extension_dir 目录中,可以使用
php -i | grep 'extension_dir'
查看,也可以更改php.ini中的设置。 - 可以使用php -m查看已经加载的module
4. 安装mysql
如果需要在服务器上安装mysql,可以参考这篇文章。
5. ossftp
参考github。
注意事项
如果挂载的目录,允许其他人查看,可以在挂载的时候指定 -o allow_ohter
参数。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。