首页  编辑  

Php从0起步到Hello World

Tags: /PHP/   Date Created:
下面是一个啥都不懂的菜鸟,从0开始起步,使用 ThinkPhp 搭建服务器和调试的完整过程。
开发和调试环境:
1. 有一个Ubuntu 服务器,安装了Apache 2.4 + Php 7.x
2. 使用NetBeans做开发,个人非常不喜欢Eclipse那套
3. 假设站点叫做 www.abc.com , 以 abc 作为目录名称

开始了,

0. 安装 Apache 和 Php: sudo apt-install apache php ,如果要选择版本,记得选择 Php7的版本
1. 首先在Ubuntu上安装git: sudo apt-get install git
2. 运行 cd /var/www ,进入apache的站点文件目录, 运行 sudo git clone https://github.com/top-think/think abc
3. 然后进入 abc 目录: cd abc ,运行sudo git clone https://github.com/top-think/framework  thinkphp ,这是下载 thinkphp的框架
4. 首先配置好Ubuntu的vhost,这个 只要在Ubuntu /etc/apache2/sites-enabled/ 下,创建一个 conf文件就可以了,假设站点叫做 www.abc.com ,文件内容如下:
<VirtualHost *:80>
        ServerName www.abc.com
        ServerAlias www.abc.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/abc/public

# 下面一定要加!
        <Directory /var/www/abc/public>
                AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/abc/error.log
        CustomLog ${APACHE_LOG_DIR}/abc/access.log combined
</VirtualHost>
保存后,记得运行 sudo mkdir /var/log/apache2/abc
运行 sudo a2enmod rewrite
然后 重启 apache 服务器: sudo  service apache2 restart 
到这里服务器就可以正常运行了,打开浏览器 http://www.abc.com 就可以看到默认的Php的首页了。
打开 http://www.abc.com/index/index/hello 应该看到 hello world

下一步就是配置和安装 NetBeans了。
1. 去NetBeans官网下载Php的支持安装程序。
2. 去Php官网,下载Php的安装包,解压到一个目录下即可。
3. 去 https://xdebug.org/ 下载 xdebug for php,记得下载对应的版本的DLL,放到Php目录下的 ext 目录下,记得这里有个坑,如果你是线程安全(ts)的php,下载dll的时候,也要下载ts的dll,如果不是线程安全的php,就要下载nts的xdebug 的 dll!
4. 修改或创建一个php目录下的 php.ini ,加入内容(示例,记得修改路径):
[xdebug]
zend_extension ="D:\Tools\php5.6\ext\php_xdebug-2.5.5-5.6-vc11.dll"
xdebug.remote_enable = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
# xdebug.profiler_output_dir =""
xdebug.show_local_vars=0

启动 Netbeans,到工具菜单,选项中,找到Php,然后在常规页面,选择Php5的解释器,就是你的Php目录下的php.exe文件了。
然后切换到调试页面,检查调试器端口,默认应该都没有问题。去掉“在第一行停止”,其余保持默认,确定就好了。

下面开始新建项目,既可以远程部署,也可以本地调试。
1. 在Netbeans中新建项目,选择Php,【来自远程服务器的Php应用程序】,下一步中,选择项目名称和本地源码保存目录,Php版本选择Php 7.0默认编码UTF-8。
2. 在远程连接页面, 项目URL输入: http://www.abc.com  远程连接,管理,新建一个 SFTP,输入服务器的地址,用户名,密码等等,测试成功就可以了。上载目录输入 /var/www/abc
3. 确定好等待下载文件就可以了,此时就可以正常开发了,但无法远程调试。如果想要在本地调试,还需要继续下一步
4. 在项目,属性,【运行配置】,新建一个,运行方式为:PHP内置Web服务器,路由器脚本,选择 public/index.php

到这里,就完成所有的步骤配置了,可以在工具栏上,随时选择切换【默认】和本地调试方式,随心所欲。

经过上面的步骤,就可以即在本地调试和开发,有可以随时切换上传到远程了。Happy coding吧。

如果发现路由上面,总是需要在URL后面加上index.php,那么可以考虑在网站目录下,放一个 .htaccess文件,内容如下:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>

或者:
<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>