建议根据文档顺序依次安装。
#tar jxvf httpd-2.4.18.tar.bz2
#cd httpd-2.4.18/
#./configure --prefix=/usr/local/apache2 --enable-so --with-included-apr
此时可能会出现如下错误,这是因为 ARP 和 ARP-util 缺失。
到 http://apr.apache.org/download.cgi 下载 apr 和 apr-util
#tar jxvf apr-1.5.2.tar.bz2
#cd apr-1.5.2/
#./configure --prefix=/usr/local/apr
此时,可能会出现 libtool 缺失,如下图所示。
解决办法:
安装 libtool、autoconf 及 automake:#zypper in autoconf libtool automake
然后执行:# autoreconf --force --install
#autoreconf --force --install
#autoreconf --force --install
之后,打开 configure 文件(现在使用的版本是 apr-1.5.2,30212 行),注释 $RM -f "$cfgfile",就是在前面添加“#”。
重新执行./configure --prefix=/usr/local/apr,问题解决。
成功标志:
编译安装 apr
#make && make install ,成功标志:
接下来,安装 APR-util。
同样,解压配置,注意使用了--with-apr:
#tar apr-util-1.5.4.tar.bz2
#cd apr-util-1.5.4/
# ./configure --with-apr=/usr/local/apr
成功标志:
#make && make install ,成功标志:
#./configure --prefix=/usr/local/apache2 --enable-so
解决办法:到 https://sourceforge.net/projects/pcre/files/ 下载 pcre 并安装。
#./configure --prefix=/usr/local/pcre
成功标志:
#make && make install ,成功标志:
进入 apache 目录,重新运行配置命令:
#./configure --prefix=/usr/local/apache2 --enable-so ,问题解决。
成功标志:
#make && make install ,成功标志:
至此,Apache 安装成功
因为是源码包安装,所以只能执行下列命令:
# /usr/local/apache2/bin/apachectl start
此时,出现下图错误,这是因为 ServerName 配置不正确的原因。
解决:# vim httpd.conf
ServerName localhost:80
改完后,重启 apache:# /usr/local/apache2/bin/apachectl restart
可以查看开发端口号:# netstat -tnlp
# cp /usr/local/apache2/bin/apachectl /etc/init.d
# chmod 755 /etc/init.d/apachectl
# chkconfig --add apachectl ;add 对应 del
# chkconfig --level 35 apachectl on ;on 对应 off
# chkconfig --list ;显示开机可以自动启动的服务
LoadModule vhost_alias_module modules/mod_vhost_alias.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
<VirtualHost 127.0.0.1:80>
#directory
DocumentRoot "D:\phpStudy\WWW\ec-shop\gold"
ServerName local.gold
# ServerAlias www.dummy-host.example.com
# ErrorLog "logs/dummy-host.example.com-error.log"
# CustomLog "logs/dummy-host.example.com-access.log" common
DirectoryIndex index.html index.htm index.php
<Directory />
Options FollowSymLinks
#不许可别人修改我们的页面
AllowOverride None
#设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
127.0.0.1 local.gold
Explain:
a.About hosts:a computer file to be used to store information on where to find an internet host on a computer network
b.When the user input a URL in the browser, the system will automatically search for the corresponding IP address
from the Hosts file, once found, the system will immediately open the corresponding page, if not found, then the
system will be submitted to the DNS domain name resolution server IP address.
Add listening port:
Listen 81
Listen 82
<VirtualHost *:81>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "d:\wamp\www\wp-job"
ServerName localhost
# ErrorLog "logs/dummy-host2.example.com-error.log"
# CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
<VirtualHost *:82>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "d:\wamp\www\wordpress"
ServerName localhost
# ErrorLog "logs/dummy-host2.example.com-error.log"
# CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
Nginx 是一款免费、开源、高效的 HTTP 服务器,Nginx 是以稳定著称,丰富的功能,结构简单,低资源消耗。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/ $releasever/$basearch/
gpgcheck=0
enabled=1
yum install -y nginx
//设置 nginx 开机自启动
systemctl enable nginx.service
//启动/停止/重新启动 nginx
systemctl start/stop/restart nginx.service
firewall-cmd –permanent –zone=public –add-service=http
firewall-cmd –permanent –zone=public –add-service=https
firewall-cmd –reload
环境要求:能够正常访问网页
server {
listen 80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/default.access.log main;
location / {
root /srv/www;
index index.php index.html index.htm;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /srv/www;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1 ;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /srv/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
环境要求:php, ThinkPHP5, pathinfo,
server {
listen 8080;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/finance.access.log main;
location / {
root /srv/www/finance/public;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /srv/www;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1 ;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /srv/www/finance/public;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PHP_VALUE "open_basedir=/srv/www/finance/:/tmp/:/proc/";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
1. 403 Forbidden
问题分析:1)检查文件或目录(/srv/www/) 权限问题;2)配置检查:访问文件类型,index index.php index.html index.htm
2.访问时,出现以下内容:
File not found.
No input file specified.
问题分析:1)检查路径配置是否正确;2)检查 php-fpm 配置
http://www.nginx.cn/231.html
https://www.nginx.com/
https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
注意:这里下载的是 rpm 安装包。
1.rpm 安装时,报如下错误,这是因为需要安装这些依赖包:
或是这样:
如果是第一个图所示错误,可以下载安装 numactl,
# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm
# rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm
如果是第二个图所示错误,可以
#rpm -ivh glibc-2.17-4.17.1.x86_64.rpm --force
接着依次安装 mysql 附带软件:
# rpm -ivh mysql-community-libs-5.6.28-2.sles12.x86_64.rpm
# rpm -ivh mysql-community-client-5.6.28-2.sles12.x86_64.rpm
# rpm -ivh mysql-community-common-5.6.28-2.sles12.x86_64.rpm
# rpm -ivh mysql-community-server-5.6.28-2.sles12.x86_64.rpm
在此安装过程中,可能已经安装它其他版本的 mysql,可以通过删除其他版本,在进行安装。
安装完成后,可以通过 # mysql_secure_installation 命令设置 root 用户密码。
//非源码安装方式
yum install mariadb mariadb-server net-tools
官网下载地址: http://www.ijg.org/
安装时需要在安装目录 jpeg 下新建 bin,include,lib,man/man1 目录。
#tar -zvxf jpegsrc.v6b.tar.gz
#cd jpeg-6b
#CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
此时可能会报出现如下错误:
解决:复制 config.guess 和 config.sub 到安装目录下
#cp /usr/share/libtool/config/config.guess ./
#cp /usr/share/libtool/config/config.sub ./
再次执行上面的配置语句。问题解决。
使用 64 位函数库编译安装:
make libdir=/usr/lib64 && make libdir=/usr/lib64 install
成功标志:
libpng 无需配置
#cp scripts/makefile.std makefile
#vim makefile
找到 CFLAGS,加入-O3 -fPIC -I$(ZLIBINC)
#make && make install
此时,可能会出现错误,解决:先把 Zlib 安装了,在重新安装 libpng,如果仍然报错,运行安装 zlib-devel
rpm -ivh zlib-devel-1.2.8-5.1.2.x86_64.rpm
重新编译出现下图提示信息,此时只需执行下面两个命令即可:
#make clean
在运行一下:
#ldconfig #动态链接库管理命令,
Freetypr: http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz
# ./configure --prefix=/usr/local/freetype
成功标志:
#make && make install
成功标志:
#./configure --prefix=/usr/local/zlib
成功标志:
#make && make install
成功标志:
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg
--with-png=/usr/local/lib --with-zlib=/usr/local/zlib --with-freetype=/usr/local/freetype
成功标志:
编译安装:
# make && make install
可能会报如下错误,检查 libpng 是否安装正确。
安装完成标志:
下载地址 http://curl.haxx.se/
#./configure --prefix=/usr/local/curl
#make && make install ,成功标志:
$ tar zxvf php-5.4.45.tar.gz
$ cd php-5.4.45
$ ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-gd \
--with-jpeg-dir=/usr/local/jpeg6 \
--with-zlib-dir=/usr/local/zlib \
--with-png-dir=/usr/local/lib \
--with-freetype-dir=/usr/local/freetype \
--with-curl=/usr/local/curl \
--with-mysql \
--with-pdo-mysql \
--with-mysqli
--enable-ftp \
--with-pcre-regex \
--with-mhash \
--enable-fpm \
--enable-mbstring \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-zip \
--enable-fileinfo \
此时,会报下图错误,解决办法就是安装 zlib-devel,# zypper in libxml2-devel -y
重新执行上面的配置命令。出现字样"Thank you for using PHP.",表示成功了。成功标志:
编译安装:
# make && make install
成功标志:
请检查 httpd.conf 文件中,下面两行代码是否已添加:
LoadModule php5_module modules/libphp5.so
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
...
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
编辑完成后,重启 apache: /etc/init.d/apachectl restart
创建和编辑 php.ini:
#cp php.ini-development /usr/local/php/lib64/
#cd /usr/local/php/lib64/
#cp php.ini-development php.ini
#vim php.ini
新建文件查看 phpinfo 是否都已加载并正常显示,
<?php
phpinfo();
?>
也许这个扩展会用到。
一般情况下这个扩展在 php 安装的时候,是存在安装包中 ext/bcmath 目录下。利用 phpize 进行安装新的 php 扩展。
#cd ext/bcmath/
#/usr/local/php/bin/phpize ;执行(phpize 的路径根据各自安装有所不同)
#find /usr/local/php/ -name php-config ;先查找 php-config 在哪个地方
#./configure --with-php-config=/usr/local/php/bin/php-config ;配置 bcmath
# make
# make install
# find /usr/local/php/ -name bcmath.so ;查看 bcmath.so 在那个路径下
现在配置 php,制定扩展路径及加载 so 文件:
需要安装其他扩展,使用同样的操作。
特别提示 1:
可能在 make 的时候,会遇到错误
错误:‘PHP_FE_END’未声明(不在函数内) -----{error: ‘PHP_FE_END’ undeclared here (not in a function)}
解决方法: 源代码有错误,进入 php-5.3.18/ext/mcrypt 目录
sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./*.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./*.c
再重新 make && make install
特别提示 2:
openssl 扩展安装,需要安装 libssl-dev,
$ sudo apt-get install libssl-dev
特别提示 3:
openssl 扩展安装配置时,出现错误信息:cannot find config.m4
解决:mv config0.m4 config.m4
cp /usr/local/php/etc/php-fpm.conf.default etc/php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf
content:
user=username
group=groupname
//开启 php-fpm
/usr/local/php/sbin/php-fpm start
//安装必须组件
$apt-get install libevent-dev
或下载 libevent-dev 源码安装:libevent.org or https://sourceforge.net/projects/levent/
//下载 Memcached
网址: http://memcached.org/downloads
//安装 Memcached
$tar zxvf memcached-1.5.4.tar.gz
$cd memcached-1.5.4
$./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
$make && make install
或通过 apt-get 命令直接安装:$apt-get install memcached
//启动 Memcached
$/usr/local/memcached/bin/memcached -m 64 -p 11211 -u nobody -vv -d
-d 表示在后台运行
$ps aux |grep memcached
//下载 libmemcached
网址: https://launchpad.net/
//解压安装
$tar zxvf libmemcached-1.0.18.tar.gz
$cd libmemcached-1.0.18
$./configure --prefix=/usr/local/libmemcached
#make && make install
### memcache 扩展
$git clone https://github.com/websupport-sk/pecl-memcache memcache
$cd memcache
$/usr/local/php7/bin/phpize
$./configure --with-php-config=/usr/local/php7/bin/php-config
#make && make install
//编辑 php.ini 文件,加入:extension=memcache.so
//重启 Apache,查看 memcache 扩展是否加载
### memcached 扩展
$git clone https;//github.com/php-memcached-dev/php-memcached.git
$cd php-memcached
$git checkout php7 //进入 php7 分支
$/usr/local/php7/bin/phpize
$./configure --with-php-config=/usr/local/php7/bin/php-config \
--with-libmemcached-dir=/usr/local/libmemcached
--disable-memcached-sasl
//同样,编辑 PHP 配置文件,加入:extension=memcached.so
//重启 Apache,查看 memcached 扩展是否加载
由于每台机器安装的系统并非完全一样,安装系统时自带的包有所差异,所以该指南仅供参考。