服务器架构及实战(架构篇)- PHP建站
概述
详解
PHP的环境搭建
PHP的帮助使用和配置文件
PHP的Hello World
PHP的库函数调用
PHP的Web程序
PHP的函数和面向对象使用
PHP的数据库访问
Nginx安装和配置访问
WordPress的安装和配置实用
推进资料:图书,视频,代码等
总述
PHP基础环境准备
安装虚拟机
VM(Virtual Box)
安装操作系统
Centos
网络使用桥接的方式连接
虚拟机有独立的IP,和主机可以相互访问
PHP安装
#wget http://pa1.php.net/distributions/php-5.6.22.tar.gz
#tar –zxf php-5.6.22.tar.gz
#./configure
#yum install libxml2 libxslt
#yum install libxml2-devel –y
#find / -name “xml2-config”
#make
#make install
#php version
PHP的帮助和配置文件
php --help
php –i
php –ini
http://php.net/manual/en/configuration.file.php
php –m
pear
pear list
PHP基础编程
第一个PHP程序
文件helloworld.php
执行$php helloword.php
未来经常用来测试的代码
PHP库函数调用
使用库函数
文件func.php
执行$php func.php
设置php.ini文件#locate php.ini # vi /usr/local/lib/php.ini
或者直接设置
PHP的Web程序
启动内置服务器
访问:
可以编辑hello.php文件:
PHP Test
PHP的函数和面向对象使用
参考代码
PHP的数据库访问
MySQL的安装
#yum install mysql
#mysql -h 192.168.5.116 -P 3306 -u root -p123456
PHP的配置
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib
echo "mysql conn start. \n";
$mysqli = new mysqli(" 192.168.0.104 ", " root ", " 123456","test");
if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;}
else {
echo “database connection success. \n”;}
echo "mysql conn end. \n";
?>
Nginx安装
#yum list | grep nginx
#vi /etc/yum.repos.d/nginx.repo
#yum install -y nginx
service nginx start # 启动Nginx服务
service nginx stop # 停止Nginx服务
/etc/nginx/nginx.conf # Nginx配置文件位置
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Nginx配置访问
Nginx
#iptables -A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
#nginx -t
[root@10 ~]# cat /etc/nginx/nginx.confuser nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ’ ‘$status $body_bytes_sent “$http_referer” ’ ‘“$http_user_agent” “$http_x_forwarded_for”’; access_log /var/log/nginx/access.log main;
sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; upstream blog.91tianwu.com {server localhost:8000 weight=5; } server {listen 80; server_name blog.91tianwu.com;location / {proxy_pass http:// blog.91tianwu.com/;}
} include /etc/nginx/conf.d/*.conf; client_max_body_size 20m;}
WordPress安装
MySQL的database创建
WordPress的下载和解压
#wget https://cn.wordpress.org/wordpress-4.5.2-zh_CN.tar.gz
#tar –zxf word*
#php -S localhost:8000
多域名的Nginx配置和WordPress设置
[root@10 ~]# cat /etc/nginx/nginx.confuser nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main;
sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; upstream blog.91tianwu.com {server localhost:8000 weight=5; } upstream bbs.91tianwu.com {server localhost:8001 weight=5; } server {listen 80; server_name
blog.91tianwu.com;location / {proxy_pass http://blog.91tianwu.com/;} } server {listen 80; server_name bbs.91tianwu.com;location / {proxy_pass http://bbs.91tianwu.com/; } } include /etc/nginx/conf.d/*.conf; client_max_body_size
20m;}
#php -S localhost:8000
#php -S localhost:8001
Database建立2个
Nginx配置2个域名和proxy
启动配置WordPress
推荐资料
李明老师讲Linux
http://study.163.com/course/courseMain.htm?courseId=266032
《php和mysql web开发》
网站
http://php.net/
没有比官网更权威的了!
推荐免费视频
一小时学会建网站(三乐大掌柜)
http://study.163.com/course/courseMain.htm?courseId=582007
基本参考文献
http://php.net/
http://php.net/manual/en/
排错时使用
http://blog.chinaunix.net/uid-26719405-id-3409842.html
http://stackoverflow.com/questions/16765158/date-it-is-not-safe-to-rely-on-the-systems-timezone-settings
http://php.net/manual/zh/datetime.configuration.php#ini.date.timezone
附录:Linux服务器安全设置
iptables关闭
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F
Iptables -nL
#iptables -A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
#iptables -A IN_public_allow -p tcp -m tcp --dport 21-m conntrack --ctstate NEW -j ACCEPT
SELinux关闭
/usr/sbin/sestatus -v
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
附录:Linux服务器FTP安装
#yum install vsftpd –y
#useradd -d /phproot/blog -m -s /sbin/nologin blogftp
#mkdir -p /phproot/blog
#chown -R blogftp.blogftp /phproot/blog
#passwd blogftp
vi /etc/vsftpd/vsftpd.conf
#禁止匿名访问 anonymous_enable=NO
#用户只能访问限制的目录 chroot_local_user=YES
#service vsftpd restart
#cd /phproot/blog
#touch test.txt
$ftp blogftp@192.168.0.104
报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
#vi /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES
报错:500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
vi /etc/vsftpd/vsftpd.conf 设置 chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list
vi /etc/vsftpd/chroot_list 添加用户名
chmod 755 blog/
附录:Linux下PHP环境变量设置
[root@twjp bin]# cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PHP_HOME=/usr/local/php
PATH=$PATH:$HOME/bin:$PHP_HOME/bin
export PATH
添物网官方帐号。添物专注于互联网信息技术研究和应用,关注程序员发展,特别是Java程序员的发展。创始人(硕士研究生)独立架构实现了添物网(含APP),有超过10年的编程和架构经验,希望通过添物网平台架构,传递软件开发架构相关知识。添物提供零基础到大型平台架构师一站通培训服务,帮助大家了解和学习整个软件的开发,测试,运维,架构,发布等内容。同时也整理分享IT相关技术内容,并提供咨询服务,促进大家共同发展。欢迎大家共同交流。
服务器架构及实战(架构篇)- PHP建站的更多相关文章
- HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署
HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升.HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行 ...
- GoDaddy商务主机建站具有的优势
GoDaddy是世界第一域名注册服务商,近年来凭借着优异的性能受到国内站长的欢迎,其中Godaddy商务主机得到了很多站长的喜爱,那么为什么GoDaddy商务主机可以受到那么多站长的喜爱呢?下面就带大 ...
- [原创].NET 分布式架构开发实战五 Framework改进篇
原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...
- [原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)
原文:[原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇) .NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇) 前言:上一篇文章讲述了一些实现DAL的理论,本 ...
- .NET-记一次架构优化实战与方案-梳理篇
目录 .NET-记一次架构优化实战与方案-梳理篇 .NET-记一次架构优化实战与方案-前端优化 .NET-记一次架构优化实战与方案-底层服务优化 前言 程序员输出是他敲写的代码,那么输入就是他思考好的 ...
- [原创].NET 分布式架构开发实战之三 数据访问深入一点的思考
原文:[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考 .NET 分布式架构开发实战之三 数据访问深入一点的思考 前言:首先,感谢园子里的朋友对文章的支持,感谢大家,希望本系列的文章能 ...
- .Net Core建站(3):搭建三层架构
啊,终于到写三层架构的时候了,老实说,我都不知道自己这个算不算三层架构,姑且就当它是吧,具体属于哪一个体系,希望有大佬指点一下(^o^)/ 不晓得有人注意到没有,我写了三篇博客,然后就改了三次标题ヽ( ...
- Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析
Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...
- 【.net core】电商平台升级之微服务架构应用实战
一.前言 这篇文章本来是继续分享IdentityServer4 的相关文章,由于之前有博友问我关于微服务相关的问题,我就先跳过IdentityServer4的分享,进行微服务相关的技术学习和分享.微服 ...
- [原创].NET 分布式架构开发实战之二 草稿设计
原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计 前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下 ...
随机推荐
- 可能是最漂亮的Spring事务管理详解 专题
微信阅读地址链接:可能是最漂亮的Spring事务管理详解 事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允 ...
- json字符串和字典类型的相互转换
在开发过程中,有时候需要将json字符串转为字典类型,反之亦然,通常采用.Net的开源类库Newtonsoft.Json进行序列化,这里我也是采用这个,不过我更喜欢写扩展方法方便在项目的调用. 首先新 ...
- P1789 【Mc生存】插火把
题目背景 初一党应该都知道...... 题目描述 话说有一天linyorson在Mc开了一个超平坦世界,他把这个世界看成一个n*n的方阵,现在他有m个火把和k个萤石,分别放在x1,y1...xm,ym ...
- SpringBoot 2.x (7):拦截器
类似以前SpringMVC的拦截器,但也有一些区别 SpringBoot的拦截器有两种方式: 第一种方式:过时的方式,适用于SpringBoot1.x的方式 package org.dreamtech ...
- Android开发二维码之坑
之前一直做的是.NET开发用的是C#语言,近段时间由于做一个APP这才用上了java,在二维码扫描整合到APP里面遇到扫描二维码之后没有返回值,经过反复的尝试最后终于拿到了返回值,之后觉得很有必要记录 ...
- 获取页面URL两种方式
以请求http://localhost:8080/doctor/demo?code=1为例 一:用java代码获取 //获取URL中的请求参数.即?后的条件 code=1 String querySt ...
- Jenkins邮件扩展插件Email Extension Plugin配置使用
1.在管理插件中搜索并安装邮件扩展插件Email Extension Plugin: 2.在任务中增加构建后操作步骤,选择Editable Email Notification; 3.在高级中Add ...
- (译文)IOS block编程指南 4 声明和创建blocks
Declaring and Creating Blocks (声明和创建blocks) Declaring a Block Reference (声明一个block引用) Block variable ...
- Java三大特性之封装
.封装 1.概念:把对象的内部细节封闭起来,只提供操作对象属性的公共方法. 封装是面向对象编程语言对客观世界的模拟:如:电视机,她的内部元件就被封闭起来了,仅仅暴露电视机按钮来供人使用,这样就没有人能 ...
- IIS实现HTTPS的主机名绑定
默认情况下,IIS中HTTPS 绑定是无法指定主机名的解决办法:通过手工修改 IIS 配置来实现主机头绑定.打开如下位置的文件. C:\Windows\system32\inetsrv\config\ ...