DataPortalDeveloperEnvironmentSetupLinux » History » Revision 45
« Previous |
Revision 45/91
(diff)
| Next »
Andreas Kohlbecker, 06/08/2018 11:52 AM
Local dataportal development and test environment on Debian based Linux¶
- Table of contents
- Local dataportal development and test environment on Debian based Linux
- Xdebug
- Setup of PhpStorm
- Setup of the PDT project in eclipse
Install PHP packages
sudo apt-get install php libapache2-mod-php php-cli php-common php-curl php-gd php-mcrypt php-mysql php-xdebug php-json php-xml php-mbstring
Restart apache
sudo service apache2 restart
Local data portal installation¶
- get latest drupal from http://cybertaxonomy.eu/download/dataportal/stable/ (drupal7-cdm_dataportal-x.x.x.tar.gz)
- extract to
/var/www
NOTE: It would be better to install it in sub folder of ~/@, e.g. @~/workspaces/www/drupal7-cdm_dataportal@, this however would involve that you modify the @/etc/apache2/sites-available/default
accordingly.
- Go to
/var/www/drupal/sites/all
- delete
/themes
- insert symlink to checked out themes from svn (http://dev.e-taxonomy.eu/svn/trunk/drupal/7.x/themes/)
sudo ln -s /path/to/svn/drupal/7.x/themes/ themes
- delete
/modules/cdm_dataportal
- insert symlink to checked out cdm_dataportal modules from svn (http://dev.e-taxonomy.eu/svn/trunk/drupal/7.x/modules)
sudo ln -s /path/to/svn/drupal/7.x/modules/cdm_dataportal/ modules/cdm_dataportal
- Go to
/var/www/drupal/profiles
- delete
/CDM_DataPortal
andCDM_DataPortal_Testing
- insert symlink to checked out profiles from svn (http://dev.e-taxonomy.eu/svn/trunk/drupal/7.x/modules/cdm_dataportal/profile/)
sudo ln -s /path/to/svn/drupal/7.x/modules/cdm_dataportal/profile/CDM_Portal/ CDM_Portal sudo ln -s /path/to/svn/drupal/7.x/modules/cdm_dataportal/profile/CDM_Portal_Testing/ CDM_Portal_Testing
- change ownership of drupal folder to www-data
sudo chown -R www-data:www-data /var/www/drupal/. <-- not sure what ownership is necessary but this works
- Create database as root:
newSite
if you're not logged in to mysql as root then also:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON newSite.* TO 'username'@'localhost';
- got to localhost/drupal/install.php
NOTE: If you are having problems with the graphical installer ("page not found" after installation) you may consider editing /var/www/drupal7-cdm_dataportal/sites/default/settings.php
with the following and repeat all the steps above
$databases = array(); $databases['default']['default'] = array( 'driver' => 'mysql', 'database' => 'new_site', 'username' => 'user', 'password' => 'pass', 'host' => 'localhost', 'prefix' => '', );
NOTE: If you see this message "Multibyte string input conversion in PHP is active and must be disabled" then add the following to your mbstring.ini or php.ini file
mbstring.http_input = pass ; mbstring.http_output = pass ;
Starting local CDM server from workspace¶
Requirements:
- You need to have cdmlib checked out and imported into your eclipse workspace (http://cybertaxonomy.eu/cdmlib/getting-started.html#Developing_the_CDM_Library_with_Eclipse)
- You neet a CDM database (called
cdmDB
in this example) - You need Jetty installed in your workspace (EclipsePreferencesforTeams#RunJettyRun)
- In your run configurations you will find two Jetty Webapp launch configs ("cdmlib-remote-webapp - run" and "cdmlib-remote-webapp - profile")
- "cdmlib-remote-webapp - run" will start the local CDM server
- if you don't have anything configured yet the following output explains how to configure the CDM data bases for the CDM server
2014-04-15 13:41:08,244 ERROR [eu.etaxonomy.cdm.remote.config.AbstractWebApplicationConfigurer] - property {cdm.datasource} not found. 2014-04-15 13:41:08,245 ERROR [eu.etaxonomy.cdm.remote.config.AbstractWebApplicationConfigurer] - --> This property can be set in two ways: 2014-04-15 13:41:08,245 ERROR [eu.etaxonomy.cdm.remote.config.AbstractWebApplicationConfigurer] - --> 1. as attribute to the ServletContext 2014-04-15 13:41:08,245 ERROR [eu.etaxonomy.cdm.remote.config.AbstractWebApplicationConfigurer] - --> 2. as system property e.g. -Dcdm.datasource 2014-04-15 13:41:08,245 ERROR [eu.etaxonomy.cdm.remote.config.AbstractWebApplicationConfigurer] - --> 3. in ~/.cdmLibrary/cdmlib-remote.properties 2014-04-15 13:41:08,245 ERROR [eu.etaxonomy.cdm.remote.config.AbstractWebApplicationConfigurer] - Stopping application ...
- For the second option add a data source bean to your
/home/user/.cdmLibrary/datasources.xml
(<- create file if it does not exist) as follows (do NOT confuse with @/home/user/cdmLibrary/writableResources/cdm.datasources.xml@):
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <bean id="cdmDB" lazy-init="true" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="user" value="user"/> <property name="password" value="password"/> <property name="jdbcUrl" value="jdbc:mysql://localhost/cdmDB?autoReconnect=true&autoReconnectForPools=true&"/> </bean> </beans>
- In your "cdmlib-remote-webapp - run" launch configuration add to VM arguments:
-Dcdm.datasource=cdmDB
- To connect the data portal to your local CDM server add the following to
Home -> Administration -> Configuration -> CDM Dataportal
and choose your classification
http://localhost:8080/
Xdebug¶
install Xdebug:
pecl install xdebug
at the end of the install log, pecl shows something like:
Build process completed successfully Installing '/usr/lib/php/20151012/xdebug.so' install ok: channel://pecl.php.net/xdebug-2.6.0 configuration option "php_ini" is not set to php.ini location You should add "zend_extension=/usr/lib/php/20151012/xdebug.so" to php.ini
add xdebug to the php.ini: /etc/php/7.0/apache2/php.ini
Use the xdebug.so location from the pecl output.
zend_extension=/usr/lib/php/20151012/xdebug.so xdebug.idekey=PHPSTORM xdebug.remote_enable=1 xdebug.remote_port=9008
service apache2 reload
Setup of PhpStorm¶
Workspace setup¶
Add Drupal code base to External libraries¶
open the external libraries configuration:
Setup the paths (this screenshot is only an example):
PhpStorm configuration to use Xdebug¶
- jetbrains: Zero-configuration Web Application Debugging with Xdebug and PhpStorm
- jetbrains: Browser Debugging Extensions
Add a remote debug configuration to the localhost
This is the server configuration. Do not configure pathmappings for localhost!
Now you can test the configuration ...
install the Firefox extension Xdebug helper
make sure the extension is configured to use the api-key PHPSTORM
:
Project setup¶
Setup of the PDT project in eclipse¶
PDT is no longer recommended, use PhpStorm instead!
PDT launch configuration for Drupal projects¶
NOTE: Default debug port is 9000.
If the eclipse progress bar stops at 57% with the message "Waiting for the XDebug Session" check if xdebug.remote_enable=on
is set in your php.ini (or xdebug.ini)
To see where the ini files are located type
php --ini
You may also look here for other troubleshooting: https://stackoverflow.com/questions/9534302/waiting-for-the-xdebug-session-57-in-eclipse-pdt
Updated by Andreas Kohlbecker almost 6 years ago · 45 revisions