标签归档:LAMP

开发者必备,超实用的PHP代码片段!

本文分享了九个超级有用的PHP代码片段,当你在开发网站、应用或者博客时,利用这些代码能为你节省大量的时间。你可以直接拿来用!

一、查看邮件是否已被阅读

当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间。

二、从网页中提取关键字

一段伟大的代码片段能够轻松的从网页中提取关键字。

三、查找页面上的所有链接

使用DOM,你可以轻松从任何页面上抓取链接,代码示例如下:

四、自动转换URL,跳转至超链接

在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于WordPress之外操作该程序,那么你可以参考wp-includes/formatting.php源代码。

五、创建数据URL

六、从服务器上下载&保存一个远程图片

当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到。代码如下:

七、移除Remove Microsoft Word HTML Tag

当你使用Microsoft Word会创建许多Tag,比如font,span,style,class等。这些标签对于Word本身而言是非常有用的,但是当你从Word粘贴至网页时,你会发现很多无用的Tag。因此,下面的这段代码可帮助你删除所有无用的Word HTML Tag。

八、检测浏览器语言

如果你的网站上有多种语言,那么可以使用这段代码作为默认的语言来检测浏览器语言。该段代码将返回浏览器客户端使用的初始语言。

九、显示Facebook 粉丝数量

如果你的网站或者博客上有内链的Facebook页面,你或许想知道拥有多少粉丝。这段代码将帮助你查看Facebook粉丝数,记住,别忘了在你的页面ID第二行添加该段代码。

CentOS 6.3 yum安装LAMP(Apache+MySQL+PHP)

一、 安装并配置MySQL

1.1 执行yum 命令安装MySQL

1.2 把添加MySQL进开机启动项,并立即启动MySQL

1.3 设置MySQL root帐号密码

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQLSERVERS 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): <– 输入系统root密码

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] <– ENTER

New password: <– 你的MySQL root密码

Re-enter new password: <– 你的MySQL root密码

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

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] <– ENTER

… 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] <– ENTER

… Success!

By default, MySQL comes with a database named ‘test’ that anyone can

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] <– ENTER

– 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] <– ENTER

… 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!

二、 安装Apache

2.1 使用yum命令安装Apache

2.2 设置开机启动Apache

2.3 启动Apache

2.4 现在直接在浏览器键入http://localhost 或http://本机IP,应该会看到Apache的测试页面

 

三、 安装配置PHP

 

3.1 使用yum命令安装PHP

3.2 重启Apache服务器

3.3 安装相关模块使用PHP支持MySQL:为了让PHP支持MySQL,我们可以安装php-mysql软件包;也可使用以下命令搜索可用的php模块

选择需要的模块进行安装

完成后在/var/www/html 里面新建info.php文件

 

能够显示PHP信息表示正确安装PHP和apache。
配置httpd.conf文件(/etc/httpd/conf/httpd.conf)
在httpd.conf文件里面有一句

意思是包含conf.d目录下的所有文件
如果我们想来一些配置尽量去conf.d目录下:以下是目录结构:

3.4 重启Apache服务器

四、 安装配置phpMyAdmin

安装好MySQL,Apache及PHP后,为了可视化的管理MySQL数据库,我们需要安装phpMyAdmin。

4.1 下载最新版本phpMyAdmin,下载地址:http://www.phpmyadmin.net/home_page/downloads.php ,选择最新版本,如phpMyAdmin-3.5.2-all-languages.tar.bz2

4.2 解压程序包

4.3 移动目录phpMyAdmin-3.5.2-all-languages到/usr/share/phpMyAdmin文件夹(建议手工操作,复制粘贴至/usr/share/目录下,后重命名文件名为phpMyAdmin,使用下面的命令行可能导致打开http://localhost/ phpmyadmin 时,提示403错误,暂时不知怎么回事- -!)

4.4 进入phpMyAdmin目录

4.5 拷贝样本配置文件到config.inc.php文件

4.6 修改Apache配置

4.7 写入如下内容

写入并退出

4.8 重启Apache服务器

4.9 至此,打开页面http://localhost/phpmyadmin 即可轻松管理你的mySQL数据库

 

备注:

给数据库授权一个admin用户,密码mysql

服务器网站根目录权限问题小议

CentOS上搭建的lamp环境经常碰到上传到htdocs目录权限不足的问题,
每回像这种temp目录,runtime目录都得给个权限……
chmod 777 -R temp
chmod 777 -R runtime
烦……
用setfacl命令就可以轻松搞定,下面介绍一下setfacl命令和chmod命令的区别:
setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。 比较常用的用法如下:
setfacl –m u:apache:rwx file 设置apache用户对file文件的rwx权限
setfacl –m g:market:rwx file 设置market用户组对file文件的rwx权限
setfacl –x g:market file 删除market组对file文件的所有权限
getfacl file 查看file文件的权限

现在进入主题,网站根目录权限的问题刚装好的环境apache的运行者为daemon用户组也是daemon
首先我们把apache所属用户给apache
groupadd mysql
useradd -g apache apache

当然在装的过程中apache用户已经存在了
vi /etc/httpd/httpd.conf

user daemon
group daemon
改成
user apache
group apache
然后敲命令
setfacl -m u:apache:rwx -R /usr/local/apache2/htdocs
setfacl -m d:u:apache:rwx -R /usr/local/apache2/htdocs
现在web服务器的运行就交给apache用户了,并且它对/usr/local/apache2/htdocs下所文件目录拥有权限
现在查看文件看和原来比有什么变化:
[zhengzs@localhost htdocs]$ ll

总计 64
-rwxr-xr-x+ 1 zhengzs root 2205 2005-12-15 apache_pb22_ani.gif
-rwxr-xr-x+ 1 zhengzs root 2410 2005-12-15 apache_pb22.gif
-rwxr-xr-x+ 1 zhengzs root 1502 2005-12-15 apache_pb22.png
-rwxr-xr-x+ 1 zhengzs root 2326 2004-11-21 apache_pb.gif
-rwxr-xr-x+ 1 zhengzs root 1385 2004-11-21 apache_pb.png
-rwxr-xr-x+ 1 zhengzs root 44 2004-11-21 index.html.bak
-rwxr-xr-x+ 1 zhengzs root 17 02-01 23:18 phpinfo.php
drwxr-xr-x+ 19 zhengzs root 4096 02-02 00:25 ThinkPHP312
权限后面多了一个‘+’(加号),说明acl已经生效了。
* 用acl来让apache用户对/usr/local/apache2/htdocs有所有权限
这样上传的文件就不用繁琐去chmod给权限,上传到根目录的文件网站都有权利运行,维护起来相当省事

LAMP网站架构方案分析

LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框 架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际 上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软 的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。

对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能 的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Databse)、高效率的编程语言等。下面我将从这几点对其一一讨论。

操作系统

Linux操作系统有很多个不同的发行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一个发行版都有自己的特色,比如RHEL的稳定,Ubuntu的易用,基于稳定性 和性能的考虑,操作系统选择CentOS(Community ENTerprise Operating System)是一个理想的方案。

CentOS(Community ENTerprise Operating System)是Linux发行版之一,是RHEL/Red Hat Enterprise Linux的精简免费版,和RHEL为同样的源代码,不过,RHEL和SUSE LE等企业版,提供的升级服务均是收费升级,无法免费在线升级,因此要求免费的高度稳定性的服务器可以用CentOS替代Red Hat Enterprise Linux使用。

LAMP网站架构图

  Web服务器、缓存和PHP加速

Apache是LAMP架构最核心的Web Server,开源、稳定、模块丰富是Apache的优势。但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web 服务器(例如nginx)高效,轻量级的Web服务器对于静态文件的响应能力来说远高于Apache服务器。

Apache做为Web Server是负载PHP的最佳选择,如果流量很大的话,可以采用nginx来负载非PHP的Web请求。nginx是一个高性能的HTTP和反向代理服 务器,Nginx以它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx不支持PHP和CGI等动态语言,但支持负载均衡和容 错,可和Apache配合使用,是轻量级的HTTP服务器的首选。

Web服务器的缓存也有多种方案,Apache提供了自己的缓存模 块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,把Squid放在 Apache的前端来缓存Web服务器生成的动态内容,而Web应用程序只需要适当地设置页面实效时间即可。如访问量巨大则可考虑使用memcache作 为分布式缓存。

PHP的加速使用eAccelerator加速器,eAccelerator是一个自由开放源码PHP加速器,优化和动 态内容缓存,提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。 使PHP程序代码执效率能提高1-10倍。

具体的解决方案有以下几种:

1、squid + Apache + PHP + eAccelerator

使用Apache负载PHP,使用squid进行缓存,html或图片的请求可以直接由squid返回给用户。很多大型网站都采用这种架构。

2、nginx/Apache + PHP(fastcgi) + eAccelerator

使用nginx或Apache负载PHP,PHP使用fastcgi方式运行,效率较高。

3、nginx + Apache + PHP + eAccelerator

此方案综合了nginx和Apache的优点,使用Apache负载PHP,nginx负责解析其他Web请求,使用nginx的rewrite模块,Apache端口不对外开放。

数据库

开源的数据库中,MySQL在性能、稳定性和功能上是首选,可以达到百万级别的数据存储,网站初期可以将MySQL和Web服务器放在一起,但是当访问 量达到一定规模后,应该将MySQL数据库从Web Server上独立出来,在单独的服务器上运行,同时保持Web Server和MySQL服务器的稳定连接。

当数据库访问量达到更大的级别,可以考虑使用MySQL Cluster等数据库集群或者库表散列等解决方案。

总的来说,LAMP架构的网站性能会远远优于Windows IIS + ASP + Access(例如月光博客)这样的网站,可以负载的访问量也非常大,国内的大量个人网站如果想要支撑大访问量,采用LAMP架构是一个不错的方案。

综上所述,基于LAMP架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是Web网络应用和环境的优秀组合。

本文地址:http://www.williamlong.info/archives/1908.html