linux php配置文件在哪
PHP开源脚本语言
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。
本文讲解了如何在linux下找出PHP配置文件phpini的路径的方法,很多linux新手都不知道php安装在哪里,需要修改phpini但是找不到在哪里,本文讲解的方法其实就是使用phpinfo()函数输出PHP信息,然后找到Configuration File (phpini) Path这节就可以了,感兴趣的同学参考下
近来,有不博友问phpini存在哪个目录下?或者修改phpini以后为何没有生效?基于以上两个问题,我觉得有必要教一下刚接触PHP的博友们如何找到PHP调用phpini的路径目录。
一般安装PHP环境无非有两种平台,Linux环境下与WIN平台下。而WIN平台居多,因为现在套装安装包非常方便,如appserv、wamp一件安装包等等。而Linux下也有LNMP一键安装包,非常方便。由于这些安装做了简化,所以自然的许多博友就不太清楚环境安装好了以后phpini放在哪个目录下,或者在某个目录下找到了phpini文件但不知是否是PHP程序调用的那个。
我们可以通过phpinfo查找phpini路径
新建一个php页面,输入:
[code]
[code]
保存退出
使用浏览器访问页面,会看到是一个PHP配置信息的相关页面
找到Configuration File (phpini) Path这一行
右边的值 /usr/local/webserver/php/etc 就是phpini文件所在目录
最后修改以后要记得重启相关程序才能生效。
Ubuntu 下 搭建lamp
1》点击 系统 ->系统管理 ->新立得软件包管理器 点击编辑 ->使用任务分组标记软件包 点击 LAMP server
2> 安装软件 在安装过程中,有要输入mysql 用户root 的密码,输两次。需要时间 ,耐心等待。
3》 编辑php配置文件
sudo gedit /etc/php5/apache2/phpini
在 extension 下面 加上
extension=php5-mcryptso
保存,重启apache2
4> 配置apache
sudo gedit /etc/apache2/apache2conf
(注意这个命令要看具体安装路径,可以现找到apache2conf 然后点击属性查看挂在点)
在配置文件最后面加入
#添加文件类型支持
<IfModule mod_php5c>
AddType application/x-httpd-php php
DirectoryIndex indexphp
</IfModule>
#默认字符集 根据自己需要
AddDefaultCharset UTF-8
#服务器地址
ServerName 127001
#添加首页文件 三个的顺序可以换 前面的访问优先 (当然你也可以加别的 比如defaultphp)
<IfModule dir_module>
DirectoryIndex indexhtm indexhtml indexphp
</IfModule>
5》配置mysql
sudo gedit /etc/mysql/mycnf
#这里有一个地方要注意
#因为默认是只允许本地访问数据库的 如果你有需要 可以打开。
bind-address 127001
#这一句是限制只能本地访问mysql的。如果有需要其他机器访问 把这句话用#注释掉
#bind-address 127001
6》测试php
新建空文档,输入
<php
phpinfo();
>
保存为tphp (注意有时输入
<php
phpinfo();
php>
解释器不能编译。可能是版本的原因。有的书上说是这两种格式都可以,但我装的时候不可以。)
然后将刚才编写的tphp文件copy到 /var/www 下。(可以用命令 cp tphp /var/www)
在浏览器中输入http://localhost/tphp 会显示
7》测试mysql
建立空白文档,输入
<php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "失败!";
else echo "成功!";
mysql_close();
>
(注意 :上面的代码中的root 是数据库mysql 的用户名,而 123456是用户名root的对应密码。如果你在装mysql 时设置的root 密码不是123456 比如是456123,上述代码中就应该是456123总之对应就好。当初我就在这犯了错误。最后觉醒了。)
另存为 mphp 然后在浏览器中输入http://localhost/mphp 如果正常,会显示
成功!
先查看当前php版本,我的是52,已安装73版本,
1查看php各版本安装位置:find / name php
2设置软连接:
ln -s /www/server/php/73/bin/php /usr/sbin/php
有时候需要覆盖旧链接:
ln -sf /www/server/php/73/bin/php /usr/sbin/php
3定义系统变量路径为你刚刚设置的路径
export PATH="/usr/sbin:$PATH"
4查看切换成功
一、安装和系统环境变量设置
1、我使用的PHP为php-5431,不用55以上版本的原因是,因为他们都是使用VC11编译的,需要一个DLL,win7及一下都不支持。下载VC9编译的PHP 54(5431) for X86的已编译版本。我的安装目录是D:\Application\php-5431,
将安装后的路径设置到系统环境变量path中。
2、perl直接下载安装即可(会自动配置环境变量,不用操心)。
3、Tomcat用的是7041版本。很多文档要求将server/lib下servlets-cgi改名为servlets-cgijar。从6版本以后,好像就没有server目录,内部已经自动支持cgi,只需要进行配置即可。
Tomcat需要JDK 16以上,所以JDK需要先安装好。
二、配置步骤:
1、到D:\Application\php-5431目录下
将phpini-development复制一份同一目录下,命名为phpini
<1>设置extension_dir参数:
extension_dir="D:\Application\php-5431\ext"
<1>设置cgiforce_redirect参数:
cgiforce_redirect = 0
2、打开Tomcat的conf下的contextxml文件
给Context增加属性privileged="true",修改后的Context元素属性如下所示:
<Context privileged="true">
3、打开Tomcat的conf下的webxml文件
在servlet和servlet-mapping之间增加如下的内容:(注意,注释不能放到配置项里面,否则启动报错)
<!—Add to support PHP & Perl -->
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>orgapachecatalinaservletsCGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>orgapachecatalinaservletsCGIServlet</servlet-class>
<init-param>
<param-name>clientInputTimeout</param-name>
<param-value>200</wwwgzlijcom param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value>D:\Application\php-5431\php-cgiexe</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/php-bin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/php-bin/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/</url-pattern>
</servlet-mapping>
备注:
1、我们配制了两个servlet,分别是php、CGI
2、在servlet参数中
<param-name>executable</param-name>
<param-value>D:\Application\php-5431\php-cgiexe</param-value>
指向CGI程序执行器,其实就一可被调用的可执行程序。(这里带全路径,好像不带路径也可以,因为path环境变量里已经配置了),记住不要用phpexe。
如果没有配置,缺省就是调用perl执行程序。
3、脚本存放路径
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
这里将perl脚本配置的是指向webapps/web-inf/cgi-bin目录下。
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/php-bin</param-value>
PHP的脚本指向的是webapps/web-inf/php-bin目录下。
4、资源URL路径映射。
这里如果请求的资源是/php-bin/则,指向php服务程序,如果是/cgi-bin/则指向cgi服务程序。
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/php-bin/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/</url-pattern>
</servlet-mapping>
三、测试
1、分别将如下的testphp和testcgi测试程序放到webapps\ROOT\WEB-INF\php-bin和webapps\ROOT\WEB-INF\cgi-bin目录下。
其中testphp内容如下:
<php phpinfo();>
Testcgi内容如下:
# filename: test1cgi
print "Content-type: text/html\n\n";
print "Hello, world!\n"
2、重新启动tomcat。
浏览器地址栏输入:http://127001:8080/php-bin/testphp
如果显示如下,则说明PHP设置正确。
<php
echo "hello World!\n\n";
echo "hello World!\n\n";
echo "hello World!\n\n";
>
针对上面的程序,如果配置中使用的是PHPexe,则只能现实两行“hello world!”, 第一行总是莫名其妙地丢失。而且对php-info()函数,第一行也会丢失。
(很多文档中都提到这个问题,其实就是因为用错了程序。)
浏览器地址栏输入:http://127001:8080/cgi-bin/testcgi
如果显示“hello world!”,则说明cgi设置正确。
首先应该是你把你的服务器配置好了 包括php apache mysql 的安装 等这些都安装好了。那么就是配置你的apache了。在这个过程中有什么疑问可以随时找我 QQ 530162466
0条评论