php Local 和 Global 作用域

Local 和 Global 作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

php 代码

<!DOCTYPE html>
<html>
<body>

<?php
$x=5; // global scope
  
function myTest() {
   $y=10; // local scope
   echo "<p> 在函数内部测试变量:</p>";
   echo " 变量 x 是:$x";
   echo "<br>";
   echo " 变量 y 是:$y";
} 

myTest();

echo "<p> 在函数之外测试变量:</p>";
echo " 变量 x 是:$x";
echo "<br>";
echo " 变量 y 是:$y";
?>

</body>
</html>

输出结果

在函数内部测试变量:

变量 x 是:
变量 y 是:10
在函数之外测试变量:

变量 x 是:5
变量 y 是:

php include 引入 html 文件套接生成页面

index.php 前端套接页面

<?php
include "header.php";
include "body.php";
include "footer.php"
?>

header.php 头部页面

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title> 这是标题</title>
  <style type="text/css">
    html,body,th{
      font-family: sans-serif;
      font-size: 12px;
      font-weight: 400;
    }
    .myPHP{
      padding: 20px 0 10px 0;
    }
  </style>
</head>

body.php 主体页面

<body>
  <div class="myPHP">
    这是 body 部分
  </div>
</body>

footer.php 页脚页面

<footer>
  这是 footer 部分
</footer>

</html>

点击 a 链接执行动作事件

<a href="####"> 使用 2 个到 4 个 # 或 #all 表示无执行,1 个 # 代表默认锚点 #top 位置,点击后会回到顶部。</a>

// 点击 a 链接不执行任何动作事件

<a href="javascript:void(0)" onclick="window.open('https://hexingxing.cn')" > 点击链接弹出窗口且原页面不变</a>

// 点击 a 链接响应自定义动作事件

获取网页 title 标题内容

cURL

<?php
$c = curl_init();
$url = 'https://hexingxing.cn';
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($c);
curl_close($c);
$pos = strpos($data,'utf-8');
if($pos===false){$data = iconv("gbk","utf-8",$data);}
preg_match("/<title>(.*)<\/title>/i",$data, $title);
echo $title[1];
?>

file()

<?php
$lines_array = file('https://labs.hexingxing.cn');
$lines_string = implode('', $lines_array);
$pos = strpos($lines_string,'utf-8');
if($pos===false){$lines_string = iconv("gbk","utf-8",$lines_string);}
eregi("<title>(.*)</title>", $lines_string, $title);
echo $title[1];
?>

file_get_contents

<?php
$content=file_get_contents("https://hxx.tw");
$pos = strpos($content,'utf-8');
if($pos===false){$content = iconv("gbk","utf-8",$content);}
$postb=strpos($content,'<title>')+7;
$poste=strpos($content,'</title>');
$length=$poste-$postb;
echo substr($content,$postb,$length);
?>

Nginx 出现 413 Request Entity Too Large 问题的解决方法

使用 PHP 上传图片(大小 1.2M),出现 nginx: 413 Request Entity Too Large 错误。
一般可能是服务器限制了上传文件的大小,但 php 默认的文件上传是 2M,应该不会出现问题。

打开 php.ini 配置文件,把 upload_max_filesizepost_max_size 修改为 20M,然后重启。
再次上传,问题依旧,可以排除 php 方面的问题。

后来发现 Nginx 默认上传文件的大小是 1M,可通过 Nginx 的设置来修改:
1、打开 Nginx 配置文件 nginx.conf, 路径一般是:/etc/nginx/nginx.conf
2、在 http{} 段中加入 client_max_body_size 20m; 20m 为允许最大上传的大小;
3、保存后重启 Nginx,问题解决。

如果是通过 phpMyAdmin 导入,那选择 “从网站服务器上传文件夹 /var/lib/phpMyAdmin/upload/ ” 方式导入,这样即使没有设置以上配置也能正常导入。

搭建 LNMP 环境之 Nginx 与 PHP (FastCGI) 的配置

一、安装和启动 nginx
1.1、安装 nginx

[root@hexingxing ~]# yum install -y nginx
// ...

Installed:
nginx.x86_64 0:1.10.2-1.el6

Dependency Installed:
GeoIP.x86_64 0:1.6.5-1.el6                                             GeoIP-GeoLite-data.noarch 0:2016.07-1.el6
GeoIP-GeoLite-data-extra.noarch 0:2016.07-1.el6                        gd.x86_64 0:2.0.35-11.el6
geoipupdate.x86_64 0:2.2.1-2.el6                                       libXpm.x86_64 0:3.5.10-2.el6
libxslt.x86_64 0:1.1.26-2.el6_3.1                                      nginx-all-modules.noarch 0:1.10.2-1.el6
nginx-filesystem.noarch 0:1.10.2-1.el6                                 nginx-mod-http-geoip.x86_64 0:1.10.2-1.el6
nginx-mod-http-image-filter.x86_64 0:1.10.2-1.el6                      nginx-mod-http-perl.x86_64 0:1.10.2-1.el6
nginx-mod-http-xslt-filter.x86_64 0:1.10.2-1.el6                       nginx-mod-mail.x86_64 0:1.10.2-1.el6
nginx-mod-stream.x86_64 0:1.10.2-1.el6

Complete!

1.2.1、启动 nginx

[root@hexingxing ~]# service nginx start
Starting nginx: nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
[FAILED]

// 启动失败,看错误提示描述 “ [::]:80 failed ”,到 nginx 配置里修改下 [::]:80 端口的监听

1.2.2、修改 [::]:80 端口的监听

[root@hexingxing ~]# vi /etc/nginx/conf.d/default.conf

#
# The default server
#

server {
listen       80 default_server;
# listen       [::]:80 default_server;
server_name  _;
root         /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}

}

// 将 listen       [::]:80 default_server; 行注释,使其不生效
// 在这之前,正常的 Linux 操作习惯为:把 default.conf 文件备份后再修改

1.3、再次启动 nginx

[root@hexingxing ~]# service nginx start
Starting nginx:                                            [  OK  ]

// 启动 nginx 成功

1.4、设置 nginx 开机启动

[root@hexingxing ~]# chkconfig --list nginx
nginx           0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@hexingxing ~]# chkconfig nginx on
[root@hexingxing ~]# chkconfig --list nginx
nginx           0:off 1:off 2:on 3:on 4:on 5:on 6:off

1.5、验证 nginx 页面
至此,已经成功安装和启动 nginx,在浏览器上输入你的服务器 IP 即可打开你的 nginx 欢迎页面,但是在这之前你可能还需要配置防火墙和 SELINUX 才能访问。

[web view]

二、安装和配置 php

2.1 安装 php

[root@hexingxing ~]# yum install -y php
// ...

Installed:
php.x86_64 0:5.3.3-48.el6_8

Dependency Installed:
apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1     httpd.x86_64 0:2.2.15-55.el6.centos.2     httpd-tools.x86_64 0:2.2.15-55.el6.centos.2
php-cli.x86_64 0:5.3.3-48.el6_8            php-common.x86_64 0:5.3.3-48.el6_8

Complete!

2.2 安装 php-fpm
// PHP-FPM(FastCGI Process Manager) ,使 nginx 支持 php

[root@hexingxing ~]# yum install -y php-fpm
// ...

Installed:
php-fpm.x86_64 0:5.3.3-48.el6_8

Complete!

2.3 启动 php-fpm

[root@hexingxing ~]# service php-fpm start
Starting php-fpm:                                          [  OK  ]

2.4 设置 php-fpm 为开机启动

[root@iZuf6e4ja95z77dnvzmssrZ conf.d]# chkconfig --list php-fpm
php-fpm         0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@iZuf6e4ja95z77dnvzmssrZ conf.d]# chkconfig php-fpm on
[root@iZuf6e4ja95z77dnvzmssrZ conf.d]# chkconfig --list php-fpm
php-fpm         0:off 1:off 2:on 3:on 4:on 5:on 6:off

2.5 修改 nginx 支持 php

2.5.1、先将需要修改的文件备份

[root@hexingxing ~]# cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
[root@hexingxing ~]# ls /etc/nginx/conf.d/
default.conf  default.conf.bak  ssl.conf  virtual.conf

2.5.2、修改文件

#
# The default server
#

server {
listen       80 default_server;
# listen       [::]:80 default_server;
server_name  _;
root         /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
index index.html index.htm index.php;
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
#fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
include        fastcgi_params;
}

}

// 在以上文件中修改以下两处:
2.5.3、将默认的以下字段:

location / {
}

修改为:

location / {
index index.html index.htm index.php;
}

2.5.4、在最后一个 “}” 之前添加以下字段:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
#fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
include        fastcgi_params;
}

注意: fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name; 字段中的 “/usr/share/nginx/html” 为你的默认或自定义 web 文件存放处,如果没有修改即是此位置。
注意: location ~ \.php$ {        root           html;        fastcgi_pass   127.0.0.1:9000; 处的 root           html; 为存放 web 文件的文件夹,可以写调用值函数或绝对值位置。

2.5.5、如果你不只一个配置文件,将字段:

listen       80 default_server;

修改为:

listen       80;

// 以上修改完成后,重启 php-fpm 和 nginx ,service php-fpm restart | service nginx restart

2.5.6、重名默认的 index.html 为 index.html.bak

[root@hexingxing ~]# mv /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.bak
[root@hexingxing ~]# ls /usr/share/nginx/html/
404.html  50x.html  index.html.bak  nginx-logo.png  poweredby.png

2.5.7、写个 php 的验证文件

[root@hexingxing ~]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php
[root@hexingxing ~]# ls /usr/share/nginx/html/
404.html  50x.html  index.html.bak  index.php  nginx-logo.png  poweredby.png

3、测试 php 版本页面
打开默认的首页,如果显示为 php 版本页面,那说明已经配置成功。

4、配置文件参考
由于环境和配置以及版本不同,可能你参考本文配置后显示的结果不一样,以下为可能是你需要用到的配置默认或能帮助到你找到问题。

“/etc/nginx/conf.d/default.conf” 文件 1

server {
listen       80;
server_name  localhost;
#charset koi8-r;
#access_log  /var/log/nginx/log/host.access.log  main;
location / {
root   /etc/nginx/html;
index  index.html index.htm index.php;
}
#error_page  404              /404.html;
# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /etc/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
#fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
include        fastcgi_params;
}
}

“/etc/nginx/conf.d/default.conf” 文件 2

server {
listen 80;
server_name yourdomain.com;
location / {
root   /opt/app/yourdomain-dir;
index  index.php index.html index.htm;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
#fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME  /opt/app/yourdomain-dir$fastcgi_script_name;
include        fastcgi_params;
}
}

Linux 隐藏 Nginx 和 PHP 版本信息

1、隐藏 Nginx 版本信息

进入 Nginx 配置文件的目录,默认在 /etc/nginx/ 目录下,用 vi 编辑打开

[root@hexingxing nginx]# vi nginx.conf

在 http {…} 里添加 server_tokens off; 字段,如:

http {
...
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
...
}

重启 Nginx 服务即可生效

[root@hexingxing nginx]# service nginx restart

2、隐藏 PHP 版本信息
进入 PHP 配置文件的目录,默认在 /etc/ 目录下,用 vi 编辑打开

[root@hexingxing etc]# vi php.ini

在 php.ini 文件里使用 / expose_php 命令搜索到对应字段位置后,将 expose_php = On 改为 expose_php = Off
重启 PHP 服务即可生效

[root@hexingxing etc]# service php-fpm restart

CentOS 6.8 配置 LAMP(Linux+Apache+PHP+MySQL)环境

前期准备

1、配置防火墙,开启 80 端口、3306 端口

[root@hexingxing ~]# vi /etc/sysconfig/iptables #编辑防火墙规则

 

将以下两条记录添加到默认的 22 端口这条规则的下面

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许 80 端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许 3306 端口通过防火墙
[root@hexingxing ~]# cat /etc/sysconfig/iptables #检查配置是否正确,正常的配置如下:

########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
########################################################
[root@hexingxing ~]# /etc/init.d/iptables restart #重启防火墙使配置生效

 

2、关闭 SELINUX

[root@hexingxing ~]# vi /etc/selinux/config
#SELINUX=enforcing #注释掉此行
#SELINUXTYPE=targeted #注释掉此行
SELINUX=disabled #增加此记录
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# shutdown -r now #重启

 

安装服务

一、安装 Apache

[root@hexingxing ~]# yum install httpd #安装 Apache 服务
[root@hexingxing ~]# /etc/init.d/httpd start #启动 Apache

备注:Apache 启动之后如果提示以下错误:

正在启动 httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName

解决方法:

[root@hexingxing ~]# vi /etc/httpd/conf/httpd.conf #编辑 Apache 配置

找到 #ServerName www.example.com:80
修改为 ServerName localhost:80 #这里设置为你自己的域名,如果没有域名,可以设置为 localhost
[root@hexingxing ~]# :wq #保存退出

[root@hexingxing ~]# chkconfig httpd on #设为开机启动
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apache

  

测试服务

在客户端浏览器输入服务器 IP 地址,如果配置正确,可以看到 Apache 相关的配置信息

 

二、安装 MySQL
1、安装 MySQL

[root@hexingxing ~]# yum install mysql mysql-server #安装 MySQL 服务
[root@hexingxing ~]# /etc/init.d/mysqld start #启动 MySQL
[root@hexingxing ~]# chkconfig mysqld on #设为开机启动
[root@hexingxing ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件

 

2、为 root 账户设置密码

[root@hexingxing ~]# mysql_secure_installation  #设置 MySQL 密码
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):  #初次配置无密码可直接回车,有密码输入密码回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n]   #是否设置 root 用户密码,输入 y 并回车或直接回车
New password:   #设置 root 用户的密码
Re-enter new password:   #再输入一次你设置的密码
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]   #是否删除匿名用户, 生产环境建议删除,所以直接回车
… Success!
 
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]   #是否禁止 root 远程登录, 根据自己的需求选择 Y/n 并回车, 建议禁止
… Success!
 
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]   #是否删除 test 数据库, 直接回车
- Dropping test database…
… Success!
 
- Removing privileges on test database…
… Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]   #是否重新加载权限表,直接回车
… Success!
 
Cleaning up…

All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
 
Thanks for using MySQL!   #最后看到这个提示说明已经配置成功

// 安装 MySQL 简单的记忆:首次配置出现 Enter current password for root (enter for none): 时,无密码可直接回车,后续配置如果有密码输入密码回车;然后根据提示输入 Y,首次配置需要相输入密码和确认密码,第二次即提示是否变换密码;输入 2 次密码,回车;根据提示一直输入 Y;最后出现:Thanks for using MySQL! 即表示成功。

MySql 密码设置完成,重新启动 MySQL:

[root@hexingxing ~]# /etc/init.d/mysqld restart #重启
[root@hexingxing ~]# /etc/init.d/mysqld stop #停止
[root@hexingxing ~]# /etc/init.d/mysqld start #启动

 

三、安装 PHP
1、安装 PHP

[root@hexingxing ~]# yum install php #安装 PHP 服务

 

2、安装 PHP 组件,使 PHP 支持 MySQL

[root@hexingxing ~]# yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt #安装 PHP 组件
[root@hexingxing ~]# /etc/init.d/mysqld restart #重启 MySql
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apache

 

测试服务

[root@hexingxing ~]# cd /var/www/html
[root@hexingxing ~]# vi index.php #编辑一个 phpinfo 的测试页面内容
[root@hexingxing ~]# :wq #保存退出

在客户端浏览器输入服务器 IP 地址,可以看到 PHP 相关的配置信息

调整配置

一、Apache 配置

[root@hexingxing ~]# vi /etc/httpd/conf/httpd.conf #编辑 Apache 配置文件
ServerTokens OS #在 44 行 修改为:ServerTokens Prod(在出现错误页的时候不显示服务器操作系统的名称)
ServerSignature On #在 536 行 修改为:ServerSignature Off(在错误页中不显示 Apache 的版本)
Options Indexes FollowSymLinks #在 331 行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行 CGI 及 SSI,禁止列出目录)
#AddHandler cgi-script .cgi #在 796 行 修改为:AddHandler cgi-script .cgi .pl(允许扩展名为.pl 的 CGI 脚本运行)
AllowOverride None #在 338 行 修改为:AllowOverride All(允许.htaccess)
AddDefaultCharset UTF-8 #在 759 行 修改为:AddDefaultCharset GB2312 (添加 GB2312 为默认编码)
Options Indexes MultiViews FollowSymLinks #在 554 行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var #在 402 行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var #设置默认首页文件,增加 index.php
KeepAlive Off #在 76 行 修改为:KeepAlive On(允许程序性联机)
MaxKeepAliveRequests 100 #在 83 行 修改为:MaxKeepAliveRequests 1000(增加同时连接数)
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# /etc/init.d/httpd restart #重启
[root@hexingxing ~]# rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页

二、PHP 配置

[root@hexingxing ~]# vi /etc/php.ini #编辑
date.timezone = PRC #在 946 行 把前面的分号去掉,改为 date.timezone = PRC
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在 386 行 列出 PHP 可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在 432 行 禁止显示 php 版本的信息
magic_quotes_gpc = On #在 745 行 打开 magic_quotes_gpc 来防止 SQL 注入
short_open_tag = ON #在 229 行支持 php 短标签
open_basedir = .:/tmp/ #在 380 行 设置表示允许访问当前目录 (即 PHP 脚本文件所在之目录) 和/tmp/目录, 可以防止 php 木马跨站, 如果改了之后安装程序有问题,可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# /etc/init.d/mysqld restart #重启 MySql
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apche

PS1:
Apache 解析 PHP,修改 httpd.conf 文件,添加
Addtype application/x-httpd-php .php .phtml
Addtype application/x-httpd-php-source .phps
PS2:
Apache 默认的程序目录是 /var/www/html

测试网站服务页面

在 /var/www/html 目录下新建 html 或 php 文件测试是否可访问