LAMP基本架构以及在单台主机上实现wordpress基于LAMP的安装javascript
-----------------------------------------------------------------------------------------------------------------------------------------------
php
1、Lamp架构css
动态资源:原始形式一般为程序文件,须要在服务器端执行以后,将执行结果返回给客户端
一、CGI:Common Gateway Interface,公共网关接口,可让一个客户端,从网页浏览器经过http服务器向执行在网络服务器上的程序传输数据,它描述了客户端和服务器程序之间传输的一种标准,好比说经过浏览器注册某网站用户,该操做经过CGI接口链接到该网站的数据库而且新增了一条用户记录
Client --(httpd) --> httpd--(cgi) --> application server (program file) --(mysql) --> mysql
三、php: 脚本编程语言、嵌入到html中的嵌入式web程序语言
基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)
一、配置文件:/etc/php.ini, /etc/php.d/*.ini
max_execution_time= 30 最长执行时间30s,运行多久后还未结束认为超时,可适当调短
max_input_time = 60 上传多长时间算超时,用户多久不写东西算超时
memory_limit 128M 内存可以使用多大,生产不够,根据实际状况可调大
display_errors off 调试使用,不要打开,不然可能暴露重要信息
display_startup_errors off 启动时是否显示错误提示,建议关闭
post_max_size 8M 用户上传时总共上传最大数据大小,生产可能临时要调大,比下面项要大
upload_max_filesize 2M 用户上传文件时单个文件上传数据大小,只是文件,生产可能要调大
max_file_uploads = 20 同时上传最多文件数
date.timezone = Asia/Shanghai 指定时区
short_open_tag = on 开启短标签,如<? phpinfo();?>
一、php的加速器:基于PHP的特殊扩展机制如opcode缓存扩展也能够将opcode缓存于php的共享内存中,从而可让同一段代码的后续重复执行时跳过编译阶段以提升性能。这些加速器并不是真正提升了opcode的运行速度,而仅是经过分析opcode后并将它们从新排列以达到快速执行的目的
(1)APC (Alternative PHP Cache),遵循PHP License的开源框架,PHP opcode缓存加速器,目前的版本不适用于PHP 5.4项目地址。
(2)eAccelerator,源于TurckMMCache,早期的版本包含了一个PHP encoder和PHP loader,目前encoder已经不在支持。
(3)XCache快速并且稳定的PHP opcode缓存,通过严格测试且被大量用于生产环境,收录EPEL源,现经常使用此加速器
(4)Zend Optimizer和Zend Guard Loader,Zend Optimizer并不是一个opcode加速器,它是由Zend Technologies为PHP5.2及之前的版本提供的一个免费、闭源的PHP扩展,其可以运行由Zend Guard生成的加密的PHP代码或模糊代码。而Zend Guard Loader则是专为PHP5.3提供的相似于Zend Optimizer功能的扩展。
(5)NuSpherePhpExpress,NuSphere的一款开源PHP加速器,它支持装载经过NuSpherePHP Encoder编码的PHP程序文件,并可以实现对常规PHP文件的执行加速。
(1)httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本,对此类资源的请求将交由php来运行
php没有独立的进程,它只是附加在httpd上的一个独立模块
modules (将php编译成为httpd的模块,默认方式)
Modules:httpd, php, php-mysql, mariadb-server
FastCGI:httpd, php-fpm, php-mysql, mariadb-server
Modules:httpd, php, php-mysql, mysql-server
四、用PDO(PHP Data Object)扩展链接数据库
在httpd目录下,默认/var/www/html,创建*.php文件并复制如下内容,对数据库测试是否连通
$dbh= new PDO('mysql:host=192.168.239.70;dbname=mysql', $user, $pass);
foreach($dbh->query('SELECT user,host from user') as $row) {
print "Error!: " . $e->getMessage() . "<br/>";
一、PhpMyAdmin、WordPress、PHPWind、Crossday Discuz! Board、ECShop
2、PhpMyAdmin:www.phpmyadmin.net/downloads/
yum -y install httpdmariadb-server phpphp-mysql
下载:https://www.phpmyadmin.net/downloads/
tar xvf phpMyAdmin-4.0.10.20-all-languages.tar.xz cd /var/www/html
cp config.sample.inc.phpconfig.inc.php
(1)cn.wordpress.org,下载wordpress-VERSION-zh_CN.zip,
(2)unzip wordpress-VERSION-zh_CN.zip 至网站目录下
(3)建立wordpress数据库,并建立wordpress使用的数据用户
mysql> grant all privileges on wpdb.* to wpuser@'%' identified by 'wppass'
(4)进入wordpress目录,cp wp-config-sample.php wp-config.php
(5)打开http://SERVER/wordpress进行页面安装
(6)注意wordpress目录权限setfacl -R -m u:apache:rwx wordpress
配置文件:/etc/php.ini,/etc/php.d/*.ini
FastCGI模式下,重启php-fpm服务,配置文件/etc/php-fpm.conf,/etc/php-fpm.d/www.conf
二、php.ini核心配置的详细说明:http://php.net/manual/zh/ini.core.php
三、Php.ini配置选项列表:http://php.net/manual/zh/ini.list.php
四、fcgi服务配置文件:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf
static:固定数量的子进程;pm.max_children
六、确保运行php-fpm进程的用户对session目录有读写权限
chown apache.apache /var/lib/php/session
(1) 配置httpd,添加/etc/httpd/conf.d/fcgi.conf配置文件,内容相似
ProxyPassMatch ^/(.*\.php)$ fcgi://PHPIPSEVER:9000/var/www/html/$1
注意:在HTTPD服务器上必须启用proxy_fcgi_module模块,充当PHP客户端
cat /etc/httpd/conf.modules.d/00-proxy.conf
vim /etc/httpd/conf.d/vhosts.conf
DocumentRoot /apps/vhosts/b.net
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/apps/vhosts/b.net/$1
<Directory "/apps/vhosts/b.net">
七、PHP-FPM常见配置,/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000 //FPM 监听地址
listen.backlog= -1 //等待队列的长度-1表示无限制listen.allowed_clients= 127.0.0.1 //仅容许哪些主机访问
//static 固定数量的子进程,pm.max_childen
pm.start_servers = 50,刚开始启动多少进程
pm.min_spare_servers = 50,最少保留空闲进程
pm.max_spare_servers = 100,最大保留空闲进程
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session,设置session存放位置
八、启动PHP-FPM:systemctl start php-fpm
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1 //开启FCGI反向代理,//前面的/相对于后面的/var/www/html而言,后面的$1是指前面的/(.*\.php)
十二、重启Httpd:systemctl start httpd