8516830 发表于 2018-11-21 10:03:34

Centos+mysql+apache(http)+php+wordpress搭建个人站点

  # 安装次序很重要:apr --> apr-util --> apache --> MySQL -->php--->Xcache ——>wordpress
  架构:LAMP一直很受大众喜欢,完全能满足基本需求。当访问量大时可以尝试LNMP架构,做到前端负载均衡访问。
  下载:各安装包已放到云盘上,http://pan.baidu.com/s/1gd1uWTX
  一、安装编译apache
  1 编译安装apr
#tar xf apr-1.4.6.tar.bz2 #cd apr-1.4.6 #./configure --prefix=/data/apr #####软件包安装的路径统一放在第三方软件位置:/data/ #make#make install  2 编译安装apr-util

[*]  #tar xf apr-util-1.5.2.tar.bz2
[*]  #cd apr-util-1.5.2
[*]  #./configure –prefix=/data/apr-util –with-apr=/data/apr
[*]  ####指定apr-util和apr安装路径
  3 安装pcre-devel软件包

[*]  # yum install pcre-devel
  4 编译安装httpd-2.4.4

[*]  # tar xf httpd-2.4.4.tar.bz2
[*]  # cd httpd-2.4.4
[*]  #./configure --prefix=/data/apache –sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/data/apr-util --enable-mpms-shared=all --with-mpm=event
[*]  说明:--prefix=/data/apache    ####httpd安装路径
[*]  --sysconfdir=/etc/httpd      ####系统配置文件目录路径
[*]  --enable-so       ######支持共享模块功能
[*]  --enable-ssl            #####支持ssl功能
[*]  --enable-cgi       ####支持cgi功能
[*]  --enable-rewrite    ####支持重写功能
[*]  --with-zlib         #####支持扩展库文件功能
[*]  --with-pcre       #####支持pcre功能
[*]  --with-apr=/data/apr       ######指定apr安装路径
[*]  --with-apr-util=/data/apr-util   #####指定apr-util安装路径
[*]  --enable-mpms-shared=all      #####表示此平台的mpm模块都会被安装
[*]  --with-mpm=event       #####特指定mpm模块为event,mpm模块可以在配置文件中修改
[*]  #make
[*]  #setenforce 0       #####由于web服务是受selinux控制会导致系统运行不起来,要把selinux的功能关掉
[*]  #make install
  5 修改httpd的主配置文件,设置其pid文件的路径

[*]  #vim /etc/httpd/httpd.conf
[*]  添加内容:PidFile“/var/run/httpd.pid”
[*]  保存退出
6 为httpd提供服务脚本

[*]  #cp /httpd-2.4.4/build/rpm/httpd.init/etc/rc.d/init.d/httpd
[*]  #vim /etc/rc.d/init.d/httpd
[*]  说明:修改配置文件
   1:#!/bin/bash   2:#   3:# Licensed to the Apache Software Foundation (ASF) under one or more   4:# contributor license agreements.See the NOTICE file distributed with   5:# this work for additional information regarding copyright ownership.   6:# The ASF licenses this file to You under the Apache License, Version 2.0   7:# (the "License"); you may not use this file except in compliance with   8:# the License.You may obtain a copy of the License at   9:#10:#   http://www.apache.org/licenses/LICENSE-2.011:#12:# Unless required by applicable law or agreed to in writing, software13:# distributed under the License is distributed on an "AS IS" BASIS,14:# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15:# See the License for the specific language governing permissions and16:# limitations under the License.17:#18:#19:# httpd      Startup script for the Apache Web Server20:#21:# chkconfig: - 85 1522:# description: The Apache HTTP Server is an efficient and extensible\23:#             server implementing the current HTTP standards.24:# processname: httpd25:# pidfile: /var/run/httpd.pid26:# config: /etc/httpd/httpd.conf27:### BEGIN INIT INFO28:# Provides: httpd29:# Required-Start: $local_fs $remote_fs $network $named30:# Required-Stop: $local_fs $remote_fs $network31:# Should-Start: distcache32:# Short-Description: start and stop Apache HTTP Server33:# Description: The Apache HTTP Server is an extensible server34:#implementing the current HTTP standards.35:### END INIT INFO36:37:# Source function library.38:. /etc/rc.d/init.d/functions39:40:# What were we called? Multiple instances of the same daemon can be41:# created by creating suitably named symlinks to this startup script42:prog=$(basename $0 | sed -e 's/^//')43:44:if [ -f /etc/sysconfig/${prog} ]; then45:          . /etc/sysconfig/${prog}46:fi47:# Start httpd in the C locale by default.48:HTTPD_LANG=${HTTPD_LANG-"C"}49:50:# This will prevent initlog from swallowing up a pass-phrase prompt if51:# mod_ssl needs a pass-phrase from the user.52:INITLOG_ARGS=""53:54:# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server55:# with the thread-based "worker" MPM; BE WARNED that some modules may not56:# work correctly with a thread-based MPM; notably PHP will refuse to start.57:apachectl=/database/apache/bin/apachectl58:httpd=${HTTPD-/database/apache/bin/httpd}59:pidfile=${PIDFILE-/var/run/${prog}.pid}60:lockfile=${LOCKFILE-/var/lock/subsys/${prog}}61:RETVAL=062:63:# check for 1.3 configuration64:check13 () {65:          CONFFILE=/etc/httpd/httpd.conf66:          GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"67:          GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"68:          GONE="${GONE}AccessConfig|ResourceConfig)"69:          if grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then70:                  echo71:                  echo 1>&2 " Apache 1.3 configuration directives found"72:                  echo 1>&2 " please read @docdir@/migration.html"73:                  failure "Apache 1.3 config directives test"74:                  echo75:                  exit 176:          fi77:}78:# The semantics of these two functions differ from the way apachectl does79:# things -- attempting to start while running is a failure, and shutdown80:# when not running is also a failure.So we just do it the way init scripts81:# are expected to behave here.82:start() {83:          echo -n $"Starting $prog: "84:          check13 || exit 185:          LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS86:          RETVAL=$?87:          echo88:          [ $RETVAL = 0 ] && touch ${lockfile}89:          return $RETVAL90:}91:stop() {92:          echo -n $"Stopping $prog: "93:          killproc -p ${pidfile} -d 10 $httpd94:          RETVAL=$?95:          echo96:          [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}97:}98:reload() {99:          echo -n $"Reloading $prog: " 100:          check13 || exit 1 101:          killproc -p ${pidfile} $httpd -HUP 102:          RETVAL=$? 103:          echo 104:} 105: 106:# See how we were called. 107:case "$1" in 108:    start) 109:          start 110:          ;; 111:    stop) 112:          stop 113:          ;; 114:    status) 115:          if ! test -f ${pidfile}; then 116:            echo $prog is stopped 117:            RETVAL=3 118:          else 119:            status -p ${pidfile} $httpd 120:            RETVAL=$? 121:          fi 122:          ;; 123:    restart) 124:          stop 125:          start 126:          ;; 127:    condrestart) 128:          if test -f ${pidfile} && status -p ${pidfile} $httpd >&/dev/null; then 129:                  stop 130:                  start 131:          fi 132:          ;; 133:    reload) 134:          reload 135:          ;; 136:    configtest) 137:          LANG=$HTTPD_LANG $httpd $OPTIONS -t 138:          RETVAL=$? 139:          ;; 140:    graceful) 141:          echo -n $"Gracefully restarting $prog: " 142:          LANG=$HTTPD_LANG $httpd $OPTIONS -k $@ 143:          RETVAL=$? 144:          echo 145:          ;; 146:    *) 147:          echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|graceful|help|configtest}" 148:          exit 1 149:esac 150:exit $RETVAL

7 为httpd提供服务脚本   1:#chmod +x /etc/rc.d/init.d/httpd  8 添加httpd为系统服务
   1:#chkconfig --add httpd  9 查看服务
   1:#netstat -ntl | grep 80
注:apache启动报告httpd: apr_sockaddr_info_get() failed错误。解决方法有两个:  修正方法有两种:
  1、不打开apache的httpd.conf关于ServerName申明,只修改/etc/hosts
  /etc/hosts修改内容如下(最后添加myservername申明):
  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myservername
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  2、直接修改httpd.conf关于ServerName定义
  ServerName myservername:80
  二、编译安装mysql
  请查看博文:http://strongit.blog.51cto.com/10020534/1659265
  三、编译安装php
  1 编译安装php-5.4.13
   1:# tar xf php-5.6.10.tar.gz   2:# cd php-5.6.10   3:# ./configure --prefix=/data/php --with-mysql=/data/mysql --with-openssl --with-mysqli=/data/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml--enable-sockets --with-apxs2=/data/apache/bin/apxs --with-mcrypt--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2--enable-maintainer-zts   4:说明:   5:--prefix=/usr/local/php:php安装路径   6:--with-mysql=/usr/local/mysql:mysql安装路径   7:--with-openssl:支持openssl功能   8:--with-mysqli=/usr/local/mysql/bin/mysql_config:mysql与apache访问的另一种接口,安装在二进制目录下   9:--enable-mbstring:多字节string10:--with-freetype-dir:安装的字体库头文件11:--with-jpeg-dir:jpeg类型的库12:--with-png-dir:png类型的库13:--with-zlib:互联网上通用压缩库,先压缩再传送,减少带宽14:--with-libxml-dir=/usr:xml库文件的路径15:--enable-xml:支持xml功能16:--enable-sockets:php支持套接字功能17:--with-apxs2=/usr/local/apache/bin/apxs:基于apxs实现让php编译成apache模块18:--with-mcrypt:支持额外的加密库19:--with-config-file-path=/etc:php配置文件放置路径20:--with-config-file-scan-dir=/etc/php.d :php配置文件的分段文件放置路径21:--with-bz2 :压缩库22:--enable-maintainer-zts:当apache使用worker或event这两个MPM,编译时使用该选项23:###我在执行./configure时候,出现了错误,提示我没有安装libmcrypt库文件,可以有两种解决方式:1、去掉该模块 2、下载依赖于该库文件的软件包,mhash*.rpm libmcrypt-*.rpm24:#make25:#make install  注:编译安装中会出现很多依赖关系,如果报错则安装相应依赖包。
  2 编辑配置文件
   1:#cp php.ini-production /etc/php.ini   2:#vim /etc/httpd/httpd.conf
   1:#cd /data/apache/htdocs/   #####进入apache页面目录下,把默认页面修改为php页面文件   2:#mv index.html index.php   3:#vim index.php   4:It works! my test page   5:   8:保存退出   9:#####发起php页面测试10:#####生成的测试页面内容对我们还是会有帮助,可以留意一下里面的内容  浏览器测试效果:

  图中,Success...是与mysql连接成功的返回信息,配置如下:
   1:#vim /data/apache/htdocs/index.php   2:   3:It works! my test page   4:    12:保存退出  四、编译安装xcache,为php提速
  1 安装xcache-3.2.0
   1:# tar xf xcache-3.2.0.tar.gz   2:# cd xcache-3.2.0       ###xcache是php的扩展,要使用php命令加载此扩展   3:# /datal/php/bin/phpize      ####phpize命令作用是要准备一个php扩展准备编译,所以扩展要先执行编译   4:#./configure--enable-xcache--with-php-config=/data/php/bin/php-config   5:#######php-config表示能够获取php的配置信息以及编译时的选项信息;   6:######由于不在默认路径下,xcache要获取php安装时所启用的功能,否则xcache会找不到php的路径   7:#make   8:#make install   9:安装结束时,会出现类似如下行:10:Installing shared extensions:   /11:#####安装共享扩展模块路径,先把这个路径复制下来,等一下复制到xcache的配置文件中  2 编辑php.ini,整合php和xcache
   1:# mkdir /etc/php.d   2:# cp xcache.ini /etc/php.d    ###将xcache提供的样例配置导入php.ini   3:#vim /etc/php.d/xcache.ini

  重启httpd服务,查看phpinfo()信息:

  五、安装wordpress
  准备工作:先创建好数据库,用户名等,解压到指定目录
   1:cp wp-config-sample.php wp-config.php   2:修改如下内容:   3:/** WordPress数据库的名称 */   4:define('DB_NAME', 'wordpress');   5:   6:/** MySQL数据库用户名 */   7:define('DB_USER', 'wordpress');   8:   9:/** MySQL数据库密码 */10:define('DB_PASSWORD', 'wordpress');11:12:/** MySQL主机 */13:define('DB_HOST', 'IP:3306');14:15:/** 创建数据表时默认的文字编码 */16:define('DB_CHARSET', 'utf8');17:18:/** 数据库整理类型。如不确定请勿更改 */19:define('DB_COLLATE', 'utf8_general_ci');添加apache虚拟主机:   1:vim /etc/httpd/httpd.conf   2:   3:      ServerAdminfei110339@163.com   4:      DocumentRoot /data/apache/htdocs   5:      ServerName fei110339   6:  重启服务访问看看,http://localhost/wordpress
  如报错,查看日志:tail -f /data/apache/logs/error_log
  注:如出现forbidden的提示,需修改
   1:vim /etc/httpd/httpd.conf   2:   3:   4:      Options FollowSymLinks   5:      AllowOverride None   6:   # Order deny,allow   7:   # Deny from all   8:  接下来,就可以使用您设置的用户名密码配置您的站点了。



页: [1]
查看完整版本: Centos+mysql+apache(http)+php+wordpress搭建个人站点