php手动安装扩展

最近在服务器上安装了一些测试程序和框架,经常会安装一些PHP的扩展,忘记命令爬文很浪费时间.所以就记录下步骤和说明.
使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活
使用方法:

  1. wget extension.tar.gz下载相应的扩展包并解压,或者使用php自带的扩展。
  2. cd extension/切换到扩展extension的目录中
  3. /php/bin/phpize 运行php安装目录下的phpize文件,这时候会在extension目录下生成相应的configure文件。
  4. ./configure --with-php-config=/php/bin/php-config 运行配置,如果你的服务器上只是装了一个版本的php则不需要添加--with-php-config 。后面的参数只是为了告诉phpize要建立基于哪个版本的扩展。
  5. && make install 编译模块
  6. 编译好模块之后,需要让php启用它。在php.ini文件中加入把extension.so开启即可。重启php服务。

例如,我安装一个tidy扩展.我这里用了宝塔面板,手动安装扩展

yum install libtidy libtidy-devel -y

cd /www/server/php/73/src/ext/tidy

/www/server/php/73/bin/phpize

./configure --with-php-config=/www/server/php/73/bin/php-config

make && make install

echo "extension = tidy.so" >> /www/server/php/73/etc/php.ini

service php-fpm-73 restart

后记:
其实phpize是一个运行脚本,主要作用是检测php的环境还有就是在特定的目录生成相应的configure文件,这样makeinstall之后,生成的.so文件才会自动加载到php扩展目录下面。

宝塔php7.3 pdo_sqlsrv连接MSSQL

享目的环境是这样:
thinkphp5.1框架连接MSSQL数据库,在之前就已经安装好了ODBC驱动,所以在thinkphp配置文件里一直使用pdo_odbc方式来连接数据库,一切正常.在database.php里的配置:

'type' => 'sqlsrv',
'dsn'  => 'odbc:Driver={ODBC Driver 17 for SQL Server};Server=127.0.0.1,1433;Database=Account',

这里DSN可以看出用的ODBC驱动连接数据库.

今天写代码的时候出现个问题..在数据库插入的时候用了insertGetId来获取插入的自增主键ID.出现错误提示:

SQLSTATE[IM001]: Driver does not support this function: driver does not support lastInsertId()

这里主要是因为odbc方式不支持getLastInsID()来获取自增主键.


- 阅读剩余部分 -

MacOS 下Android studio修改模拟器的host

看了很多网上的方法都是不好用。

这里自己搞定了!

先关闭正在运行的虚拟机。

  1. 打开终端

    cd ~/Library/Android/sdk/emulator

  2. 查看下avd列表

    ./emulator -avd -list-avds
    会列出你的模拟器名字,Nexus_6P_API_28是我这里的模拟器的名字
    ./emulator -avd Nexus_6P_API_28 -writable-system
    之后会出现提示:

    emulator: WARNING: System image is writable
    emulator: INFO: boot completed
  3. 然后新打开一个终端切换到sdk下的platform-tools目录

    cd ~/Library/Android/sdk/platform-tools
    ./adb root
    ./adb remount

    提示:remount succeeded

  4. 然后拉去hosts文件下来:
    ./adb pull /system/etc/hosts ~/Downloads
  5. 修改hosts文件
    code ~/Downloads/hosts
    这里我添加了一行:
    192.168.33.10 xim.local
  6. 保存,然后传回:
    ./adb push ~/Downloads/hosts /system/etc/hosts
  7. 测试:

    ./adb shell
    cat /etc/hosts
    ping xim.local
  8. 重启设备
    这里设置完以后一定要用adb reboot先重启下虚拟机,不然直接用Android Studio启动虚拟机会被恢复

./adb reboot
这里我重启以后又执行了./adb shell reboot -p 不知道这步是不是必须的。

备注:
这里我把adb命令加入了系统变量:
code ~/.bash_profile
添加一下代码:
export PATH=${PATH}:~/Library/Android/sdk/platform-tools

Done!

博客搬家及搬瓦工CN2 GIA的一些测试

无奈google的服务器一年时间到期了。昨天晚上重新购买了搬瓦工的VPS,然后博客搬家。

问题记录及解决办法:

1.打开页面显示Database Server Error数据库出错
原因是说php7废弃了mysql
修改根目录下config.inc.php文件
找到$db = new Typecho_db("Mysql","typecho_");
改为$db = new Typecho_db("Pdo_Mysql","typecho_");

2.SSL失效
因为免费的阿里云SSL证书也马上到期,又重新申请了证书。配置方法 ->
给自己的网站配置SSL(LNMP1.4+阿里云免费SSL证书)







- 阅读剩余部分 -