解决LAMP php打开后出现乱码的问题

本文介绍了一种解决Apache服务器上PHP页面中文乱码的问题的方法。通过在Apache配置文件中设置字符集为UTF-8或gb2312,并重启Apache服务来解决中文显示问题。

在调试程序的时候出现了下边的情况:


解决方法如下所示:

打开apache配置文件: sudo gedit /etc/apache2/apache2.conf,

在最后面加上:AddDefaultCharset UTF-8

如果还是乱码的,再将UTF-8改用gb2312。

重启Apache:sudo /etc/init.d/apache2 restart  

再刷新mysql_test.php 中文乱码没有了。


设计内容二 LAMP开发环境搭建与应用 1.目的和要求 Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案. 本设计课题期望学生能够在Ubuntu系统中搭建起一个LAMP开发环境,并完成编写一个网页,该网页中的内容应包含:学生的个人简单信息、服务器系统相关信息等内容。 2.设计内容 在虚拟机环境中的Ubuntu系统中成功搭建LAMP开发环境。 编写一个网页,该网页能够显示完成本设计的学生信息以及apache服务器的相关信息。 可以在宿主机,即虚拟机运行系统中通过域名方式访问该网页。 3.设计环境 运行于window系统下的vmware虚拟机环境 运行于vmware虚拟机环境环境中的Ubuntu操作系统 Linux系统的DNS服务配置套件bind9 4.设计提示: LAMP开发环境搭建 安装MYSQL sudo apt-get install mysql-server sudo apt-get install mysql-client 安装过程中会要设置用户名和密码,设置后要记住,后面会使用。 安装Apache sudo apt-get install apache2 安装PHP sudo apt-get install php5 sudo apt-get install libapache2-mod-auth-mysql sudo apt-get install php5-mysql 设置Ubuntu文件执行读写权限: LAMP组建安装好之后,PHP网络服务器根目录默认设置是在:/var/www。由于Linux系统的安全性原则,该目录下的文件读写权限是只允许root用户操作的,所以我们不能在www文件夹中新建php文件,也不能修改和删除,必须要先修改/var/www目录的读写权限。在界面管理器中通过右键属性不能修改文件权限,得执行root终端命令:sudo chmod 777 /var/www。然后就可以写入html或php文件了。 或者: su root(用root用户) chown username /var/www(将username替换为您当前用户的用户名) exit或者ctrl+d(退出root) 如果,ubuntu系统root用户还不可用,那是因为ubuntu系统默认root密码为空,您可以通过如下命令设置密码: sudo passwd -l root 安装phpmyadmin-Mysql 数据库管理 sudo apt-get install phpmyadmin 在安装过程中会要求选择Web server:apache2或lighttpd,选择apache2,按tab键然后确定。然后会要求输入设置的Mysql数据库密码连接密码。 然后将phpmyadmin与apache2建立连接,例如:www目录在/var/www,phpmyadmin在/usr/share/phpmyadmin目录,所以就用命令: sudo ln -s /usr/share/phpmyadmin /var/www 建立连接。 在浏览器地址栏中打开http://localhost/phpmyadmin,测试是否工作正常。 检测Apache是否正常 在浏览器中打开:http://localhost/ 如果出现如下信息,则表明正常。 检测PHP是否正常 Ubuntu下Apache的默认安装路径为/var/www/,到其目录下新建info.php文件,文件内容为: <?php phpinfo(); ?> 然后在浏览器中打开:http://localhost/info.php 看是否正常。如果现实类似如下图所示状态表示PHP运行正常。 注:在该目录直接新建文件是没有权限的,为其增加当前用户权限。 检测MySql是否工作正常 上面php,Apache 都已经测试过了,下面再测试一下Mysql 数据库是否已经正确启用。 在/var/www目录下新建 mysql_test.php: <?php $link = mysql_connect("localhost","root","123456"); if (!$link) { die('Could not connect: ' . mysql_error()); } else echo "Mysql已经正确配置"; mysql_close($link); ?> 如果在浏览器中能够显示上图所示结果,就表示mysql运行正常。 解决Firefox浏览器显示中文乱码问题 上面在FireFox浏览器中打开mysql_test.phpphpmyadmin测试时,如果出现了中文乱码,则是默认语言设置问题解决方法如下: 打开apache配置文件: udo gedit /etc/apache2/apache2.conf,在最后面加上:AddDefaultCharset UTF-8,如果还是乱码的,再将UTF-8改用gb2312。 重启Apache:sudo /etc/init.d/apache2 restart 再刷新mysql_test.php 中文乱码没有了。 如果要人工启动mysqlmysql -u root -p,根据提示输入密码。 如果重启Apache时出现: * Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName 则还是修改apache配置文件:sudo gedit /etc/apache2/apache2.conf,在文件最后设置:ServerName 127.0.0.1 PHP网页设计 此次需要编写的php网页文件,通过浏览器显示需要达到如下图所示的效果: 获取以上部分系统信息的php语句如下所示: 服务器系统: <?php echo defined('PHP_OS')?PHP_OS:'未知'; ?> 服务器软件: <?php echo $_SERVER["SERVER_SOFTWARE"];?> PHP 版本: <?php echo phpversion();?> MySQL服务器: <?php echo mysql_get_server_info();?> 服务器地址: <?php echo $_SERVER['SERVER_ADDR'];?> 服务器根目录: <?php echo $_SERVER['DOCUMENT_ROOT'];?> 服务器时区: <?php echo date("T",time())?> register_globals: <?php echo $onoff;?> 文件上传: <?php echo $upload;?> 用户主机名: <?php echo gethostbyaddr($_SERVER['REMOTE_ADDR']);?> 用户IP地址: <?php echo $_SERVER['REQUEST_METHOD'];?> apache服务器的域名配置 由上一步骤中,我们可以看到apache服务器的ip地址为192.168.41.136。而平时我们访问网页时通常是使用域名来进行的。因此,在此也希望大家能够熟悉一下Linux系统下的DNS服务的配置方法。 对于上面配置的apache服务器,如果在没有配置域名解析服务时,通常我们访问apache服务器的方式通常是: 远程访问:http://192.168.41.136 本地访问:http://127.0.0.1或http://localhost 而在这里我们希望能够通过我们自己的域名来访问apache服务器。 大致网络环境描述如下: ubuntu系统的主机名为:whpuser, Ubuntu系统的IP地址为:192.168.41.136 windows系统的实体网卡IP地址为:192.168.1.102 vmware的虚拟nat网卡:vmnet8的IP地址为:192.168.41.1 自定义的域:mydns.com web服务器的机器名:www,即访问apache服务器的域名为www.mydns.com。 具体配置方法提示: Linux系统中DNS服务主要使用bind9套件进行配置,因此首先需要安装好bind9. sudo apt-get install bind9 安装好bind套件后,可以使用ls -l /etc/bind命令查看该目录中的文件,可以看到其中包含的一些默认DNS配置文件,其中需要修改的文件为named.conf.local。 为了满足前面给出的网络环境描述,需要配置以下几个文件的内容: named.conf.local (这个是安装后已存在的文件) // // Do any local configuration here // zone "41.168.192.in-addr.arpa" IN { type master; file "/etc/bind/db.192.168.41"; }; zone "1.168.192.in-addr.arpa" IN { type master; file "/etc/bind/db.192.168.1"; }; zone "mydns.com"{ type master; file "/etc/bind/db.mydns.com"; }; // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; 以上斜体部分,是需要自行添加的内容。 下面根据上面添加内容中有下划线部分的文件路径指定的文件,需要自行创建和编辑内容。 db.192.168.41 ;db.192.168.41 ; $TTL 604800 @ IN SOA whpuser.mydns.com. root.whpuser.mydns.com. ( 1 ; serial 604800 ; refresh 86400 ; retry 2419200; expire 604800 ) ; negative cache TTL @ IN NS whpuser.mydns.com. 136 IN PTR whpuser.mydns.com. 1 IN PTR window.mydns.com. db.192.168.1 ;db.192.168.1 ; $TTL 604800 @ IN SOA whpuser.mydns.com. root.whpuser.mydns.com. ( 1 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expire 604800 ) ; negative cache TTL @ IN NS whpuser.mydns.com. 102 IN PTR window1.mydns.com. mydns.com ;db.mydns.com ; $TTL 604800 @ IN SOA whpuser.mydns.com. root.whpuser.mydns.com. ( 1 ; serial 604800 ;refresh 86400 ; retry 2419200 ; expire 604800 ) ; negative cache TTL @ IN NS whpuser.mydns.com. whpuser IN A 192.168.41.136 www IN CNAME whpuser window IN A 192.168.41.1 window1 IN A 192.168.1.102 编辑好以上文件文件后,需要重启bind9服务: sudo /etc/init.d/bind9 restart 通过以下命令查看服务启动中是否有错误: tail /var/log/syslog 如果没有本质错误应该出现下图所示情况: 使用nslookup命令的交互式方式检验域名正向解析和反向解析是否正常: 以上内容成功后,应该能够使用域名www.mydns.com 在虚拟机环境运行的ubuntu中访问apache服务器,同时也能在运行虚拟机vmware的windows环境中通过域名来访问ubuntu系统中的apache服务器的网页(前提是需要将网卡的中IP配置中的主dns配置为ubuntu系统的IP地址)。执行效果大致如下图所示: 在Ubuntu系统中访问: 在windows系统中访问:
最新发布
06-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值