linux+apache+mysql+php

把发布目录放在/apache,创建一个Apache用户,用nfs共享

rpm包

安装这三个软件httpd httpd-devel mysql-server mysql-devel php php-devel php-mysql

把php代码包放在apache发布目录下

启动apache

修改权限,配置mysql库,如果是站库分离,ip写mysqlIP,用户名密码,文件前缀,然后mysql给站服务器授权


源码包

httpd tar-zxf 

./configure --prefix=/usr/local/http2  --enable-so  --enable-rewrite &&make &&make install 

开启服务 在浏览器测试


mysql 安装

创建用户

basedir datadir
useradd -s /sbin/nologin  mysql
mkdir -p /usr/local/mysql
mkdir -p /data/mysql

chown mysql /data/mysql

编译安装

./configure --prefix=/usr/local/mysql  --enable-assembler   && make && make install

cp support-files/my-medium.cnf /etc/my.cnf

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/

cp support-files/mysql.server /etc/init.d/mysqld

修改权限并设置开机启动

chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

启动mysql服务  

/etc/init.d/mysqld start

如果启动不起来

MySQL初始化命令/usr/local/mysql/bin/mysql_install_db --user=mysql

如果有提示让改skip什么的,在mysql.conf里改


php

./configure  --prefix=/usr/local/php5    --with-config-file-path=/usr/local/php5/etc     --with-apxs2=/usr/local/apache2/bin/apxs      --with-pdo-mysql=/usr/local/mysql/

make && make install

如果装LAP,不要mysql

编译PHP的时候,执行./configure --help|grep mysql

 --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd  --with-mysqli=mysqlnd 


修改http.conf 文件

LoadModule php7_module modules/libphp7.so (默认已存在)

AddType application/x-httpd-php .php 这句加上就行了

DirectoryIndex index.php index.html (在indexhtml前加入 index.php)


在htdoc下创建index.php,写入

<?php

phpinfo();

?>

重启apache,在浏览器测试


WordPress

下载wordpress,解压

cp到htdos目录下

创建数据库create database character set utf8;

写入wp-config.php 修改文件权限,写入必要信息 测试

更换主题时让登FTP,在wp-config.php,输入define("FS_METHOD", "direct"); 

提示下载失败。 没有可以完成请求的HTTP传输器


curl库就是用来服务器项目的对外连接和通讯。所以没有开启这个模块,对于类似协议的连接和请求均无法实现。而这也解释了更新的时候为什么找不到HTTP传输器。

 ;extension=php_curl.dll  


在php.ini中找到这一句话,把前面的分号去掉,就实现了模块开启。重启下apache服务就搞定了。

需要注意的是,wordpress在更新版本或者插件的时候,下载更新往往需要先进行文件缓存。这里就涉及到2个参数配置:


max_execution_time = 60   //php脚本的最大执行时间,默认60秒,如果觉得文件60s下载不完的话,建议放宽时间限制,0为无限制

post_max_size = 8M       //post请求下php能接收的文件最大容量,默认为8M,如果文件过大的话建议放宽,0为无限制


把这几个参数配置完善,再更新版本应该不会有其他问题了。

重启apache

主从

模拟主库down机,主库上mysqldump  -uroot -p --all-databases >2017all.sql

从库上#mysql -root -p < 2017all.sql

锁表master上flush tables with read lock

slave上执行stop slave

set global sql_slave_skip_counter=1 意为跳过一步 差几个position就跳过几个


多个apache服务器连到一个mysql服务器上

只需要修改配置文件wp-config.php,连到mysql服务器上


NFS使多apache服务器连接一个网站目录

nfs配置  /etc/exports 写上/data/html/      *(rw,sync,no_root_squash) 然后启动nfs

然后apache服务器上挂载

mount -t nfs 192.168.0.56:/data/html/ /var/www/html/   和/usr/local/apache2/htdocs/