Ⅰ 使用php的exec权限问题
在php.ini在找到这行
disable_functions
=
exec,system,ini_alter,readlink,symlink,leak,proc_open,popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,passthru,popen
这些都是禁用的函数,每个函数用逗号分开的,你把exec,删除了保存就可以了
Ⅱ windows 怎么支持symlink
一、系统约定篇 环境软件下载后存放位置:X:\Server_Tools 环境软件安装位置:X:\Server_Core PHP安装位置:X:\Server_Core\PHP MySQL安装位置:X:\Server_Core\MySQL Zend Optimizer安装位置:X:\Server_Core\Zend IIS网站站点根目录:X:\wwwroot MySQL 数据库位置:X:\Database php.ini存放位置:Y:\Windows\php.ini my.ini 存放位置:X:\Server_Core\MySQL\my.ini 注:X和Y为本标准中的变量,X仅表示应用程序实际存放、安装的分区盘符,Y为系统所在分区盘符。 二、系统环境检查以及准备所需软件篇 1 、检查系统是否已安装 IIS 单击:“开始”-“管理工具”。 2010-7-2 11:00 上传 下载附件 (868.46 KB) 检查是否存在“Internet 信息服务(IIS)管理器”
Ⅲ wampserver 修改php.ini配置问题
symlink表示这是一个连接,而不是真正的文件,window下可以理解为快捷方式.
php.ini的路径应该是php/etc/php.ini之类的,而不会再apache/的目录下
Ⅳ windows下怎么安装php7,php7里面没有这个php7apache2
第一步:安装Apache服务。
在这里主要配置Network Domain、Server Name、Email地址以及Apache服务的占用端口,默认为80端口,你可以根据需要配置在其他端口,Apache的安装目录你可以使用默认目录或根据需要自行选择安装目录。
在完成apache服务的安装后,在游览器中输入http://localhost/,出现It’s work!字样,说明Apache服务安装成功了。
第二步:MySQL的安装
选择Custom自定义安装
点击“Change”更改你需要的目录
待文件复制安装完毕后,进行MySQL设置界面,单击Finish。
选择Detailed Configuration进行详细配置
选择MySQL运行模式:Server Machine
选择MySQL数据库默认存储方式:Non-Trans Only (MYISAM)
设定MySQL最大连接数:一般设置为128 – 512之间的整数。
设定MySQL网络参数,注意:不要勾选启用Strict Mode!那个Addfirewall的选项仅在需要外连MySQL的时候勾选上,也就是说给防火墙加个出入站的策略。
设定MySQL默认字符集:以用户站点语言为准,默认我们填gbk。
Windows环境设定
修改设定root用户密码,root密码请设置的比较复杂些,如果你出现的是三行,第一行的current password不要填写,留空白
注意:非必要情况下,不要启动远程连接模式! 完成MySQL的安装,并启动MySQL服务。
完成后,打开cmd命令提示符窗口,输入命令:mysql –u root –p
输入刚才安装时设置的密码后,如果能够正常进入MySQL控制台则说明MySQL安装正常。
更改MySQL数据库存放目录(可选,默认是在C:ProgramDataMySQLMySQL Server 5.1data,隐藏目录)
打开cmd命令提示符窗口,输入命令:net stop mysql 停止MySQL服务运行;
打开你的mysql安装目录的my.ini,
找到:
Datadir = “XXXXdata”
修改为:
Datadir = “你需要的mysql安装目录,如:F:Database”
将C:ProgramDataMySQLMySQL Server 5.1data 文件夹复制到你修改的Datadir目录,注意不是作为子目录,如果你的Datadir写的是F:Database,那么你就把C:ProgramDataMySQLMySQL Server 5.1data复制到F盘,然后改名为Database;
打开cmd命令提示符窗口,
输入命令:net start mysql
启动MySQL服务。
重新测试MySQL是否工作正常。
第三步:安装PHP。
其实在Windows 7下进行PHP安装非常简单,由于我下的是PHP代码包,只要解压php-5.3.2-Win32-VC6-x86并重名为文件夹为php,将其复制到C盘目录下即可完成PHP安装。
PHP环境搭建第三步:进行PHP配置环境。
解压缩下载的php-5.2.8-Win32.zip文件到你指定的目录
然后修改php.ini
进入PHP文件夹,将php.ini-dist 重命名为php.ini ;
打开php.ini文件,找到:
extension_dir= “./”
将其改为:
extension_dir= “你的php解压目录ext”
找到:Windows Extensions
在Windows Extensions下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的分号即可)
php_curl.dll
php_pdo_mysql.dll
php_gd2.dll
php_mbstring.dll
php_mcrypt.dll
php_mhash.dll
php_ming.dll
php_mysql.dll
php_openssl.dll
php_sockets.dll
php_xmlrpc.dll
php_zip.dll
找到:
disable_functions=
改为:
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
保存php.ini文件,并将其复制到Y:Windows,然后把php文件夹下的libmysql.dll复制到C:WindowsSystem32目录下。
接着配置PHP的Session功能(可选)
在使用session功能时,我们必须配置session文件在服务器上的保存目录,否则无法使用session,我们需要在Windows 7上新建一个可读写的目录文件夹,此目录最好独立于WEB主程序目录之外,此处我在D盘根目录上建立了phpsessiontmp目录,然后在php.ini配置文件中找到
;session.save_path = “/tmp”
修改为
session.save_path = “D:/phpsessiontmp”
配置PHP的文件上传功能 (可选)
同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败,我们仍然需要在Windows 7上建立一个可读写的目录文件夹,此处我在D盘根目录上建立了phpfileuploadtmp目录,然后在php.ini配置文件中找到
;upload_tmp_dir =
修改为
upload_tmp_dir = “D:/phpfileuploadtmp”
第五步:配置Apache以支持PHP
1、打开你的apache2的安装目录,找到conf文件,打开里面的httpd.conf
在#LoadMole vhost_alias_mole moles/mod_vhost_alias.so下添加
复制代码
代码如下:
LoadMole php5_mole "你的php安装目录/php5apache2_2.dll"
PHPIniDir "c:/Windows" (因为把php.ini复制到了C:/Windows目录中了)
AddType application/x-httpd-php .php .html .htm
我们在PHP目录下可以看到多个php5apache的DLL文件,由于我们使用的是Apache2.2.15,所以我们当然需要使用php5apache2_2.dll,接着指定PHP的安装目录以及执行的程序扩展名。
2、我们应该知道默认Apache服务器执行WEB主程序的目录为Apache2.2/htdocs,所以当你的WEB主程序目录变更时,我们需要修改相应的Apache配置,即将
复制代码
代码如下:
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
修改为
复制代码
代码如下:
DocumentRoot "D:/PHPWeb(目录自己定,我这是随便写的)"
还有
复制代码
代码如下:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
修改为
<Directory "D:/PHPWeb(目录自己定,我这是随便写的)">
最后修改具体的index文件先后顺序,由于配置了PHP功能,当然需要index.php优先执行
DirectoryIndex index.html
修改为
DirectoryIndex index.php index.html
最后重启Apache服务器
在一切工作完成后,在你刚才指定的工作目录中(D:/PHPWeb)新建php文件,输入以下内容
复制代码
代码如下:
<?
phpinfo();
?>
保存,在浏览器中输入http://localhost/刚才新建的php文件名.php,如果出现php信息的话,就说明成功了。然后是数据库的链接,把刚才建的php文件的内容替换为
复制代码
代码如下:
<?php
$connect=mysql_connect(“127.0.0.1″,”root”,”你的mysql数据库密码”);
if(!$connect) echo “Mysql Connect Error!”;
else echo “欢迎我的博客-www.aitilife.com”;
mysql_close();
?>
Ⅳ WindowsServer2003中IIS支持php的配置
确定你下载的PHP和MYSQL都是相应你系统能用的(我一般用的版本如下,其实配置都一样,无所谓的
MySQL-essential-5.0.45-win32.msi
php-5.2.4-Win32.zip)
1.安装MySQL(没有特殊说明的就按照默认安装)
选择 Custom 自定义安装
点击"Change"更改 MySQL 安装目录(自定义)
其他按照默认的下一步就可以
安装完成后会自动跳转到设置界面,选择 Detailed Configuration 进行详细配置
选择 MySQL 运行模式:Server Machine
选择 MySQL 数据库默认存储方式:Non-Trans Only ( MYISAM)
设定 MySQL 最大连接数:一般设置为 128 - 512 之间的整数
设定 MySQL 网络参数,注意:不要启用 Strict Mode!
设定 MySQL 默认字符集:以用户站点语言为准(一般GBK)
Windows 环境设定,三个都勾上,service name是MySQL
接下来设置root用户密码,按需求是否启用远程用户(Enable root access from remote...),如果只是本机访问的话就别勾了,更安全
最后,完成 MySQL 的安装和配置,会自动启动 MySQL 服务。
测试 MySQL 工作是否正常:
打开 cmd 命令提示符窗口,输入命令:MySQL –u root –p 输入密码后,如果能够正常进入 MySQL 控制台则说明 MySQL 安装正常。(注意,-p和密码之间没空格)
2.安装 PHP:(我默认安装在D:\PHP下,可按需求更改)
(1) 解压缩下载的 php-5.2.4-Win32.zip 文件,并将其复制到: D:\PHP ;
(2) 进入 D:\PHP文件夹,将 php.ini-dist 重命名为 php.ini ;
(3) 打开 php.ini 文件,找到:extension_dir = "./" 将其改为;
extension_dir = " D:\PHP\ext"
(4) 找到:Windows Extensions
在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_MySQL.dll
(5) 找到:
disable_functions =
改为:
disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
(6) 保存 php.ini 文件,并将其复制到 C:\Windows\
PHP按此安装可以满足绝大部分建站需求。如果有特殊需要请自行查阅PHP模块(extension)的相关资料
3. IIS 新建一个站点(这部分不仔细阐明了,没什么要点,只是要注意需要给予该站点"读取"和"运行脚本"的权限)
4.IIS 与 PHP 的整合配置 - 使站点支持 PHP(这个是重点)
(1) 右键打开刚刚建立的网站属性,
(2) 在站点属性窗口中,单击"主目录"页签,单击"配置"按钮,在新弹出的"应用程序配置"对话框中,单击"添加"按钮,加入 PHP 的 ISAPI 支持,选择可执行文件:D:\PHP\php5isapi.dll 、扩展名为 .php 、限制动作为:GET,POST 。单击"确定"添加,并在"应用程序配置"窗口中查看 .php 扩展是否加载成功。若成功,则单击"确定"关闭配置窗口,回到站点属性主窗口。【这步比较重要】
(3) 单击"文档"页签,在默认内容文档中添加 index.htm、index.html、index.php 三个文件,并将所有默认文档排序,顺序按照下图所示。完成后,单击"确定",关闭站点属性配置窗口,回到 IIS 管理器主界面。
(4) 右键单击"Web 服务扩展",添加一个新的web服务扩展,添加 PHP 扩展支持。
(5) 在"新建WEB服务扩展"对话框中,"扩展名"填写PHP,"文件"选择 D:\PHP\php5isapi.dll ,并设置该PHP扩展默认为允许。
(6) 重启 IIS 服务
5、测试 PHP 支持是否正常
IIS与PHP的整合已经完毕,下面需要测试 PHP 支持是否正常。
在你的网站根目录下新建一个phpinfo.php文件,用记事本编辑,内容为
<?php
phpinfo();
?>
然后尝试访问该页面。
如果能够正常显示PHP支持信息则表明配置整合是成功的。
至此 全部配置完毕
Ⅵ PHP语言有更新过吗
PHP是一种新型的CGI程序编写语言,易学易用,运行速度快,可以方便快捷地编写出功能强大,运行速度快,并可同时运行于 Windows、Unix、linux平台的Web后台程序,内置了对文件上传、密码认证、Cookies操作、邮件收发、动态GIF生成等功能,PHP 直接为很多数据库提供原本的连接,包括Oracle、Sybase、Postgres、Mysql、Informix、Dbase、Solid、 Access等,完全支持ODBC接口,用户更换平台时,无需变换PHP代码,可即拿即用. Version 5.2.5 08-November-2007 * Security Fixes o Fixed dl() to only accept filenames. reported by Laurent Gaffie. o Fixed dl() to limit argument size to MAXPATHLEN (CVE-2007-4887). o Fixed htmlentities/htmlspecialchars not to accept partial multibyte sequences. o Fixed possible triggering of buffer overflows inside glibc implementations of the fnmatch(), setlocale() and glob() functions. Reported by Laurent Gaffie. o Fixed "mail.force_extra_parameters" php.ini directive not to be modifiable in .htaccess e to the security implications reported by SecurityReason. o Fixed bug #42869 (automatic session id insertion adds sessions id to non-local forms). o Fixed bug #41561 (Values set with php_admin_* in httpd.conf can be overwritten with ini_set()). * Upgraded PCRE to version 7.3 (Nuno) * Added optional parameter $provide_object to debug_backtrace(). (Sebastian) * Added alpha support for imagefilter() IMG_FILTER_COLORIZE. (Pierre) * Added ability to control memory consumption between request using ZEND_MM_COMPACT environment variable. (Dmitry) * Improved speed of array_intersect_key(), array_intersect_assoc(), array_uintersect_assoc(), array_diff_key(), array_diff_assoc() and array_udiff_assoc(). (Dmitry) * Fixed move_uploaded_file() to always set file permissions of resulting file according to UMASK. (Andrew Sitnikov) * Fixed possible crash in ext/soap because of uninitialized value. (Zdash Urf) * Fixed regression in glob() when enforcing safe_mode/open_basedir checks on paths containing '*'. (Ilia) * Fixed PDO crash when driver returns empty LOB stream. (Stas) * Fixed iconv_*() functions to limit argument sizes as workaround to libc bug (CVE-2007-4783, CVE-2007-4840 by Laurent Gaffie). (Christian Hoffmann, Stas) * Fixed missing brackets leading to build warning and error in the log. Win32 code. (Andrey) * Fixed leaks with multiple connects on one mysqli object. (Andrey) * Fixed endianness detection on MacOS when building universal binary. (Uwe Schindler, Christian Speich, Tony) * Fixed imagerectangle regression with 1x1 rectangle (libgd #106). (Pierre) * Fixed bug #43196 (array_intersect_assoc() crashes with non-array input). (Jani) * Fixed bug #43139 (PDO ignores ATTR_DEFAULT_FETCH_MODE in some cases with fetchAll()). (Ilia) * Fixed bug #43137 (rmdir() and rename() do not clear statcache). (Jani) * Fixed bug #43130 (Bound parameters cannot have - in their name). (Ilia) * Fixed bug #43099 (XMLWriter::endElement() does not check # of params). (Ilia) * Fixed bug #43020 (Warning message is missing with shuffle() and more than one argument). (Scott) * Fixed bug #42976 (Crash when constructor for newInstance() or newInstanceArgs() fails) (Ilia) * Fixed bug #42943 (ext/mssql: Move *timeout initialization from RINIT to connect time). (Ilia) * Fixed bug #42917 (PDO::FETCH_KEY_PAIR doesn't work with setFetchMode). (Ilia) * Fixed bug #42890 (Constant "LIST" defined by mysqlclient and c-client). (Andrey) * Fixed bug #42818 ($foo = clone(array()); leaks memory). (Dmitry) * Fixed bug #42817 (clone() on a non-object does not result in a fatal error). (Ilia) * Fixed bug #42785 (json_encode() formats doubles according to locale rather then following standard syntax). (Ilia) * Fixed bug #42783 (pg_insert() does not accept an empty list for insertion). (Ilia) * Fixed bug #42773 (WSDL error causes HTTP 500 Response). (Dmitry) * Fixed bug #42772 (Storing $this in a static var fails while handling a cast to string). (Dmitry) * Fixed bug #42767 (highlight_string() truncates trailing comment). (Ilia) * Fixed bug #42739 (mkdir() doesn't like a trailing slash when safe_mode is enabled). (Ilia) * Fixed bug #42703 (Exception raised in an iterator::current() causes segfault in FilterIterator) (Marcus) * Fixed bug #42699 (PHP_SELF plicates path). (Dmitry) * Fixed bug #42654 (RecursiveIteratorIterator modifies only part of leaves) (Marcus) * Fixed bug #42643 (CLI segfaults if using ATTR_PERSISTENT). (Ilia) * Fixed bug #42637 (SoapFault : Only http and https are allowed). (Bill Moran) * Fixed bug #42629 (Dynamically loaded PHP extensions need symbols exported on MacOSX). (jdolecek at NetBSD dot org) * Fixed bug #42627 (bz2 extension fails to build with -fno-common). (dolecek at netbsd dot org) * Fixed bug #42596 (session.save_path MODE option does not work). (Ilia) * Fixed bug #42590 (Make the engine recognize \v and \f escape sequences). (Ilia) * Fixed bug #42587 (behavior change regarding symlinked .php files). (Dmitry) * Fixed bug #42579 (apache_reset_timeout() does not exist). (Jani) * Fixed bug #42549 (ext/mysql failed to compile with libmysql 3.23). (Scott) * Fixed bug #42523 (PHP_SELF plicates path). (Dmitry) * Fixed bug #42512 (ip2long('255.255.255.255') should return 4294967295 on 64-bit PHP). (Derick) * Fixed bug #42506 (php_pgsql_convert() timezone parse bug) (nonunnet at gmail dot com, Ilia) * Fixed bug #42462 (Segmentation when trying to set an attribute in a DOMElement). (Rob) * Fixed bug #42453 (CGI SAPI does not shut down cleanly with -i/-m/-v cmdline options). (Dmitry) * Fixed bug #42452 (PDO classes do not expose Reflection API information). (Hannes) * Fixed bug #42468 (Write lock on file_get_contents fails when using a compression stream). (Ilia) * Fixed bug #42488 (SoapServer reports an encoding error and the error itself breaks). (Dmitry) * Fixed bug #42378 (mysqli_stmt_bind_result memory exhaustion). (Andrey) * Fixed bug #42359 (xsd:list type not parsed). (Dmitry) * Fixed bug #42326 (SoapServer crash). (Dmitry) * Fixed bug #42214 (SoapServer sends clients internal PHP errors). (Dmitry) * Fixed bug #42189 (xmlrpc_set_type() crashes php on invalid datetime values). (Ilia) * Fixed bug #42139 (XMLReader option constants are broken using XML()). (Rob) * Fixed bug #42086 (SoapServer return Procere '' not present for WSIBasic compliant wsdl). (Dmitry) * Fixed bug #41822 (Relative includes broken when getcwd() fails). (Ab5602, Jani) * Fixed bug #39651 (proc_open() append mode doesn't work on windows). (Nuno 以上 是 找来的 就我而言 目前来说 完善的更新还 没出 但一直在讨论阶段 以上 只代表个人观点
Ⅶ 打开php.ini中的Safe_mode,会影响哪些参数至少说出6个。
system,passthru,exec,shell_exec,popen,phpinfo等等大部分的文件操作函数。
因为Safe_mode是php非常重要的内嵌的安全机制。默认是关闭的。
Ⅷ 如何在linux系统下打造适合自己的PHP开发环境
一、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置(prefix):/usr/local/software_name
脚本以及维护程序存放位置:/usr/local/sbin
MySQL 数据库位置:/var/lib/MySQL(可按情况设置)
Apache 网站根目录:/home/www/wwwroot(可按情况设置)
Apache 虚拟主机日志根目录:/home/www/logs(可按情况设置)
Apache 运行账户:www:www
二、系统环境部署及调整
1. 检查系统是否正常
1
2
3
4
# more /var/log/messages(检查有无系统级错误信息)
# dmesg(检查硬件设备是否有错误信息)
# ifconfig(检查网卡设置是否正确)
# ping www.163.com(检查网络是否正常)
2. 关闭不需要的服务
1
2
3
4
5
6
7
8
9
10
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭:
atd
crond
irqbalance
microcode_ctl
network
sendmail
sshd
syslog
3. 重新启动系统
1
# init 6
4. 配置 vim
1
# vi /root/.bashrc
在 alias mv='mv -i' 下面添加一行:alias vi='vim' 保存退出。
1
# echo 'syntax on' > /root/.vimrc
5. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)
1
2
# yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex
bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kerne
6. 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步
1
# crontab -e
加入一行:
1
*/30 * * * * ntpdate 210.72.145.44
7. 源码编译安装所需包 (Source)
需要下载的文件
1
2
3
4
5
6
7
gd-2.0.34.tar.gz
libxml2-2.6.30.tar.bz2
libmcrypt-2.5.8.tar.bz2
cronolog-1.7.0-beta.tar.gz
openssl-0.9.8e.tar.gz (可选)
openssl-0.9.8e.tar.gz (可选)
7.1 GD2
1
2
3
4
5
6
# cd /usr/local/src
# tar xzvf gd-2.0.34.tar.gz
# cd gd-2.0.34
# ./configure --prefix=/usr/local/gd2
# make
# make install
7.2 LibXML2
1
2
3
4
5
6
# cd /usr/local/src
# tar xjvf libxml2-2.6.30.tar.bz2
# cd libxml2-2.6.30
# ./configure --prefix=/usr/local/libxml2
# make
# make install
7.3 LibMcrypt
1
2
3
4
5
6
# cd /usr/local/src
# tar xjvf libmcrypt-2.5.8.tar.bz2
# cd libmcrypt-2.5.8
# ./configure –prefix=/usr/local/libmcrypt
# make
# make install
7.4 Apache日志截断程序
1
2
3
4
5
6
# cd /usr/local/src
# tar xzvf cronolog-1.7.0-beta.tar.gz
# cd cronolog-1.7.0-beta
# ./configure –prefix=/usr/local/cronolog
# make
# make install
8. 升级OpenSSL和OpenSSH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# cd /usr/local/src
# tar xzvf openssl-0.9.8e.tar.gz
# cd openssl-0.9.8e
# ./config --prefix=/usr/local/openssl
# make
# make test
# make install
# cd ..
# tar xzvf openssh-4.7p1.tar.gz
# cd openssh-4.7p1
# ./configure \
"--prefix=/usr" \
"--with-pam" \
"--with-zlib" \
"--sysconfdir=/etc/ssh" \
"--with-ssl-dir=/usr/local/openssl" \
"--with-md5-passwords"
# make
# make install
(1)禁用 SSH V1 协议 找到:
1
#Protocol 2,1
改为:
1
Protocol 2
(2)禁止root直接登录,此处先建立一个普通系统用户:
1
2
# useradd username
# passwd username
找到:
1
#PermitRootLogin yes
改为:
1
PermitRootLogin no
(3)禁用服务器端GSSAPI,找到以下两行,并将它们注释:
1
2
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
(4)禁用 DNS 名称解析,找到:
1
#UseDNS yes
改为:
1
UseDNS no
(5)禁用客户端 GSSAPI
1
# vi /etc/ssh/ssh_config
找到:
1
GSSAPIAuthentication yes
将这行注释掉。
最后,确认修改正确后重新启动 SSH 服务
1
2
# service sshd restart
# ssh -v
确认 OpenSSH 以及 OpenSSL 版本正确。
三、编译安装L.A.M.P环境
1. 下载软件
1
# cd /usr/local/src
下载文件mysql,apache,php,请到下面网址下载相应软件
1
2
3
http://www.apache.org/ (推荐版本:2.2.21)
http://www.php.net/ (推荐版本:5.2.17)
http://www.mysql.com/
2. 编译安装MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# tar xzvf MySQL-5.0.45-linux-i686-glibc23.tar.gz
# mv MySQL-5.0.45-linux-i686-glibc23 /usr/local/
# ln -s /usr/local/ MySQL-5.0.45-linux-i686-glibc23 /usr/local/MySQL
# useradd MySQL
# chown -R MySQL:root /usr/local/MySQL/
# cd /usr/local/MySQL
# ./scripts/MySQL_install_db --user=MySQL
# cp ./support-files/MySQL.server /etc/rc.d/init.d/MySQLd
# chown root:root /etc/rc.d/init.d/MySQLd
# chmod 755 /etc/rc.d/init.d/MySQLd
# chkconfig --add MySQLd
# chkconfig --level 3 5 MySQLd on
# cp ./support-files/my-huge.cnf /etc/my.cnf
# mv /usr/local/MySQL/data /var/lib/MySQL
# chown -R MySQL:MySQL /var/lib/MySQL/
# vi /etc/my.cnf
3. 编译安装Apache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# cd /usr/local/src
# tar xjvf httpd-2.2.21.tar.bz2
# cd httpd-2.2.21
# ./configure \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--enable-deflate=shared" \
"--enable-expires=shared" \
"--enable-rewrite=shared" \
"--enable-static-support" \
"--disable-userdir"
# make
# make install
# echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local
4. 编译安装PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# cd /usr/local/src
# tar xjvf php-5.2.17.tar.bz2
# cd php-5.2.17
# ./configure \
"--prefix=/usr/local/php" \
"--with-apxs2=/usr/local/apache2/bin/apxs" \
"--with-config-file-path=/usr/local/php/etc" \
"--with-MySQL=/usr/local/MySQL" \
"--with-libxml-dir=/usr/local/libxml2" \
"--with-gd=/usr/local/gd2" \
"--with-jpeg-dir" \
"--with-png-dir" \
"--with-bz2" \
"--with-freetype-dir" \
"--with-iconv-dir" \
"--with-zlib-dir " \
"--with-openssl=/usr/local/openssl" \
"--with-mcrypt=/usr/local/libmcrypt" \
"--enable-soap" \
"--enable-gd-native-ttf" \
"--enable-ftp" \
"--enable-mbstring" \
"--enable-exif" \
"--disable-ipv6" \
"--disable-cgi" \
"--disable-cli"
# make
# make install
# mkdir /usr/local/php/etc
# cp php.ini-dist /usr/local/php/etc/php.ini
5. 整合Apache与PHPP
1
# vi /usr/local/apache2/conf/httpd.conf
找到:
1
AddType application/x-gzip .gz .tgz
在该行下面添加
1
AddType application/x-httpd-php .php
找到:
1
DirectoryIndex index.html
将该行改为
1
DirectoryIndex index.html index.htm index.php
找到:
1
2
3
4
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-info.conf
#Include conf/extra/httpd-vhosts.conf
#Include conf/extra/httpd-default.conf
去掉前面的“#”号,取消注释。注意:以上 4 个扩展配置文件中的设置请按照相关原则进行合理配置!修改完成后保存退出。
1
# /usr/local/apache2/bin/apachectl restart
6. 查看确认L.A.M.P环境信息、提升 PHP 安全性
在网站根目录放置 phpinfo.php 脚本,检查phpinfo中的各项信息是否正确。
确认 PHP 能够正常工作后,在 php.ini 中进行设置提升 PHP 安全性。
1
# vi /etc/php.ini
找到:
1
disable_functions =
设置为:
1
2
phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,
ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
Ⅸ 如何在linux下安装多个不同版本的PHP
Linux下部署php多版本共存
背景说明
自php7问世,身为最新版本控的我马上升级体验,但是由于服务器上还有旧程序在运行,只好部署一个php多版本共存环境。
现有环境是lnmp
- CentOS 6.7
- nginx 1.10.1
- mariadb-10.0.26
- php 7.0.8
为了更好兼容旧的php程序,推荐使用5.4.45. 主要是兼容mysql扩展。
开始安装
首先要下载php-5.4.45.tar.gz源码包。
通过源码安装
# tar xzvf php-5.4.45.tar.gz
# cd php-5.4.45
# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl
# make ZEND_EXTRA_LIBS='-liconv'
# make install
# cp php.ini-proction /usr/local/php/etc/php.ini
------------------------------------------------------------------------------------------------
php.ini 配置
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
------------------------------------------------------------------------------------------------
php-fpm.conf 配置
------------------------------
# vim /usr/local/php/etc/php-fpm.conf1
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
error_log = /usr/local/php54/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
----------------------------------------------------------------------------------
启动 php-fpm
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm start
-------------------------------------------------------------------------------------------
修改nginx配置,对需要的服务配置使用php-5.4.45
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php54-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
----------------------------------------------------------------------------------------
配置php-5.4.45 的php54-fpm 开机自动启动
# chkconfig --add php54-fpm
# chkconfig php54-fpm on
Ⅹ 如何查看symlink 文件 目标路径
一、系统约定篇 环境软件下载后存放位置:X:\Server_Tools 环境软件安装位置:X:\Server_Core PHP安装位置:X:\Server_Core\PHP MySQL安装位置:X:\Server_Core\MySQL Zend