概述

详解

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建站的更多相关文章

  1. HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署

    HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升.HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行 ...

  2. GoDaddy商务主机建站具有的优势

    GoDaddy是世界第一域名注册服务商,近年来凭借着优异的性能受到国内站长的欢迎,其中Godaddy商务主机得到了很多站长的喜爱,那么为什么GoDaddy商务主机可以受到那么多站长的喜爱呢?下面就带大 ...

  3. [原创].NET 分布式架构开发实战五 Framework改进篇

    原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...

  4. [原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)

    原文:[原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇) .NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇) 前言:上一篇文章讲述了一些实现DAL的理论,本 ...

  5. .NET-记一次架构优化实战与方案-梳理篇

    目录 .NET-记一次架构优化实战与方案-梳理篇 .NET-记一次架构优化实战与方案-前端优化 .NET-记一次架构优化实战与方案-底层服务优化 前言 程序员输出是他敲写的代码,那么输入就是他思考好的 ...

  6. [原创].NET 分布式架构开发实战之三 数据访问深入一点的思考

    原文:[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考 .NET 分布式架构开发实战之三 数据访问深入一点的思考 前言:首先,感谢园子里的朋友对文章的支持,感谢大家,希望本系列的文章能 ...

  7. .Net Core建站(3):搭建三层架构

    啊,终于到写三层架构的时候了,老实说,我都不知道自己这个算不算三层架构,姑且就当它是吧,具体属于哪一个体系,希望有大佬指点一下(^o^)/ 不晓得有人注意到没有,我写了三篇博客,然后就改了三次标题ヽ( ...

  8. Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

    Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...

  9. 【.net core】电商平台升级之微服务架构应用实战

    一.前言 这篇文章本来是继续分享IdentityServer4 的相关文章,由于之前有博友问我关于微服务相关的问题,我就先跳过IdentityServer4的分享,进行微服务相关的技术学习和分享.微服 ...

  10. [原创].NET 分布式架构开发实战之二 草稿设计

    原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计 前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下 ...

随机推荐

  1. php,json数据传输(无刷新)

    废话不说直接上关键代码: js代码: <script language="javascript"> $(".login").live('click' ...

  2. C#中this指针的用法示例

    这篇文章主要介绍了C#中this指针的用法,对初学者而言是非常重要的概念,必须加以熟练掌握,需要的朋友可以参考下. 本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体 ...

  3. python工具之myql数据库操作

    import pymysql import config ''' 1.0 简单封装 1.1 添加了insert_id属性,返回insert时返回的主键 1.2 添加了column属性,返回查询的col ...

  4. 死磕 java并发包之AtomicInteger源码分析

    问题 (1)什么是原子操作? (2)原子操作和数据库的ACID有啥关系? (3)AtomicInteger是怎么实现原子操作的? (4)AtomicInteger是有什么缺点? 简介 AtomicIn ...

  5. codeforces415D. Glad to see you!(交互)

    题意 交互题. 有$k$个值域为$[1, n]$的数. 请在不超过$60$次询问内找出其中的两个数. 每次询问形式为1 x y 交互库会返回$|x - a| <= |y - b| ? " ...

  6. Github-Client(ANDROID)开源之旅(三) ------ 巧用ViewPagerIndicator

    接上篇博文:Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock 文中结合了网易新闻客户端讲解了开源库ActionBarSherklock ...

  7. ssm框架搭建(下) 简单案例

    前言 这段时间没有更新博客,一直想做一个基于ssm的简单的项目.经过多次的尝试,终于实现了简单的增删查改功能了. 正文 由于前端的技术不是很熟悉,经过多方的查阅,使用了bootstrap的样式,来使界 ...

  8. 获取父页面的dom元素

    $("li.jericho_tabs", window.top.document); 上面的代码意思是获取父页面的li元素,class为jericho_tabs的所有元素.

  9. 洛谷 U10206 Cx的治疗

    题目背景 「Cx的故事」众所周知,Cx是一个宇宙大犇.由于Cx在空中花园失足摔下,导致他那蕴含着无穷智慧的大脑受到了严重的损伤,许多的脑神经断裂.于是,Cx的wife(有么?)决定请巴比伦最好的医师治 ...

  10. SQLite-And和OR运算符

    SQLite - AND 和 OR 运算符 SQLite AND . OR运算符用于编译多个条件缩小在一个SQLite声明中选定的数据.这两个操作符被称为连接的操作符. 这些操作符与不同操作提供了一种 ...