Sonarqube For PHP 代码质量管理

发表于:2018-11-22 11:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:SegmentFault    来源:简书

分享:
  下载jdk&sonarqube&sonar-scanner
  安装jdk
  基于ubuntu 16.04+apache[具体webserver采用缺省安装]
   sonarqube-5.6.6.zip
  jdk-8u121-linux-x64.tar.gz
  sonar-scanner-2.8.zip
  解压安装配置环境变量
  我的在usr/local下,uzip解压 mv等操作略过 .
   root@ubuntu:/usr/local/sonar# ls
  sonarqube-5.6.6  sonar-scanner-2.8
  root@ubuntu:/usr/local/sonar#
  
   root@ubuntu:/usr/local/java# ls
  jdk1.8.0_121
  root@ubuntu:/usr/local/java#

vim ~/.bashrc
  打开之后在末尾添加,以下只是参考,只要放到环境变量就行
   export JAVA_HOME=/usr/local/java/YOUR_DOWN_LOAD_VERSION
  export JRE_HOME=${JAVA_HOME}/jre
  export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  export PATH=${JAVA_HOME}/bin:$PATH
  export SONAR_HOME=/usr/local/sonar/sonarqube-5.6.6
  export SONAR_RUNNER_HOME=/usr/local/sonar-scanner-2.8
  export JAVA_HOME=/usr/local/java/jdk1.8.0_121
  export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  export PATH=${SONAR_RUNNER_HOME}/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  验证一下java环境
   root@ubuntu:/usr/local/java# java
  Usage: java [-options] class [args...]
  (to execute a class)
  or  java [-options] -jar jarfile [args...]
  (to execute a jar file)
  where options include:
  -d32      use a 32-bit
  ...
  ...
  mysql数据源配置,sonar配置文件
  mysql -u root -p
  以下除了第一行都不是必须
   CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
  CREATE USER 'sonar' IDENTIFIED BY 'sonar';
  GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
  GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
  FLUSH PRIVILEGES;
  vim /usr/local/sonar/sonar-scanner-2.8/conf
  注意以下配置mysql数据源,截取部分..
   #----- Global database settings (not used for SonarQube 5.2+)
  sonar.jdbc.username=root
  sonar.jdbc.password=root
  #----- PostgreSQL
  #sonar.jdbc.url=jdbc:postgresql://localhost/sonar
  #----- MySQL
  sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
  vim /usr/local/sonar/sonarqube-5.6.6/conf
  # The schema must be created first.
  sonar.jdbc.username=root
  sonar.jdbc.password=root
  #----- Embedded Database (default)
  # H2 embedded database server listening port, defaults to 9092
  #sonar.embeddedDatabase.port=9092
  #----- MySQL 5.6 or greater
  # Only InnoDB storage engine is supported (not myISAM).
  # Only the bundled driver is supported. It can not be changed.
  sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
  启动sonarqube
  /usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh start
  我这里已经启动了,
   tb@ubuntu:/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64$ /usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh status
  SonarQube is running (2187).
  更好的启动sonarqube
   vim /etc/systemd/system/sonar.service
  [Unit]
  Description=SonarQube service
  After=syslog.target network.target
  [Service]
  Type=forking
  ## 可以具体路径再改下
   ExecStart=/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh start
  ExecStop/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh stop
  User=root
  Group=root
  Restart=always
  [Install]
  WantedBy=multi-user.target
  可以通过以下语句控制
   systemclt start sonar
  systemctl stop sonar
  systemctl status sonar
  如果有报错: Process exited with exit value [es]: *
  可以追踪sonarqube下的log文件,我这里经过定位是启动es的时候用root启动了
  需要adduser sonaradmin;passwd sonarsonaradmin;然后chown -R sonaradmin:sonaradmin /sonar_path即可
  然后启动用sonaradmin启动即可成功。
  如果有报错: Java heap space
  官方文档即可
   export SONAR_SCANNER_OPTS="-Xmx1028m"
  set SONAR_SCANNER_OPTS=-Xmx512m
  是时候来张图了
  具体的php和汉化,可以通过web页面install对应的插件。很方便。可以直接搜索如 php chinese等,后台默认用户名 密码都是 admin
  引入具体项目
  需要在你的检测目录下建立一个配置文件即可
   tb@ubuntu:~/sonartest/CI_Cart$ ls
  admin  application  ci_cart.sql  css  images  index.php  js  LICENSE  README.md  sonar-project.properties  system  uploads
  tb@ubuntu:~/sonartest/CI_Cart$ pwd
  上面的sonar-project.properties内容参考如下即可:
   sonar.projectKey=org.codehaus.sonar:ci_cart
  sonar.projectName=PHP CI_Cart  sonar test
  sonar.projectVersion=1.0
  #这里是php文件放的地方
 sonar.sources=/home/tb/sonartest/CI_Cart
  # 单元测试代码目录
#sonar.tests=./tests
  #单元测试覆盖率报告文件
 #sonar.php.coverage.reortPath=./logs/clover.xml
  #单元测试报告文件
  #sonar.php.tests.reportPath=./logs/junit.xml
  # Language
  sonar.language=php
  sonar.dynamicAnalysis=false
  # Encoding of the source files
  sonar.sourceEncoding=UTF-8
  ~
  需要检测代码目录执行scanner【需要有sonar配置文件】
   root@ubuntu:/home/tb/sonartest/CI_Cart# /usr/local/sonar/sonar-scanner-2.8/bin/sonar-scanner
  INFO: Scanner configuration file: /usr/local/sonar/sonar-scanner-2.8/conf/sonar-scanner.properties
  INFO: Project root configuration file: /home/tb/sonartest/CI_Cart/sonar-project.properties
  INFO: SonarQube Scanner 2.8
  INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
  INFO: Linux 4.4.0-62-generic amd64
  INFO: User cache: /root/.sonar/cache
  INFO: Load global repositories
  INFO: Load global repositories (done) | time=221ms
  自动化Jenkins了解一下
  安装jenkins
  
  需要安装locale插件汉化,之后需要重启
  Locale     Downloaded Successfully. Will be activated during the next boot
  Locale     Success
  由于通过apt-get isntall jenkins安装的,我直接/etc/init.d/jenkins {start|stop|status|restart|force-reload}即可。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号