Atlantic Business Technologies, Inc.

Category: PHP

  • What are my options for WordPress editors?

    WordPress is a popular CMS due to ease of customization, a large community, and SEO-friendliness. WordPress lists over 55,000 plugins available to customize your website, and new ones are constantly being added to the mix. There are many different ways to use a WordPress site, from eCommerce to local businesses and large university websites.

    Because of WordPress’ versatility, there are many ways of setting up the website for employees to make content adjustments. For example, employees could build new pages with a drag-and-drop interface, or they could simply select a pre-styled page template and enter content.

    In this article, we will cover these popular editor options:

    • Page builders
    • Advanced Custom Fields
    • Gutenberg

    While each editor has their own sets of pros and cons, read on to learn more about the different options available and which may be the best fit for your website.

    Page builders, bands, and blocks – which choice is best for me?

    The best editor to use in WordPress depends on several factors:

    • The complexity of web features
    • The complexity of design
    • The amount of control you want your users to have in design
    • What tasks users will need to complete in the admin

    Page Builder Plugins in WordPress

    Page builder editors are drag-and-drop interfaces that, generally speaking, make it simple for admin users to design pages however they envision. Users will not experience constraints in design.

    Some popular page builder plugins include Beaver Builder, WPBakery, Divi, and Visual Composer. These drag-and-drop editors work best with a simple design and very basic websites.

    The primary benefit of using a page builder is that editors can create highly customized pages without any HTML or CSS knowledge. Additionally, if editors need to have full control, page builders give them the capability of overriding templates with their design changes.

    As long as the design is simple, editors can easily drag and drop content blocks and elements into a page to style how they like.

    Page Builder plugins work well when:

    • Design is simple
    • Admin users need full control of layouts and design elements
    • Developers do not make frequent design updates

    ACF Flexible Content in WordPress

    However, there are downsides to giving too much flexibility for admin users. Giving full control can create issues with branding guidelines and consistency in design across pages. It also creates constraints for developers, making frequent updates difficult and increasing technical debt over time.

    At Atlantic BT, we often find that ACF plugin with Flexible Content fields hits the sweet spot, giving clients some layout control while staying within brand and accessibility constraints.

    Each page is defined by a template, and each template has its own set of available bands. While bands are pre-styled by developers, editors can choose which bands to add to a page and the order in which they will display. They also have full control over the content added to each band.

    For example, there may be 10 bands available to use for a marketing landing page. A marketer can choose which of these 10 bands to use on the page, what content will display within, and what order the bands will display.

    ACF is especially useful when:

    • A website reuses components across pages
    • Developers will need to make frequent updates (they will experience less constraints than with page builders)
    • Companies adhere to strict brand guidelines, but need flexibility in updating content

    Gutenberg in WordPress

    Gutenberg is a new editor which uses blocks within pages. Users can drag blocks into the page, similar to a page builder, and customize with a visual editor. However, users still will not experience the full control that they do with page builders.
    Gutenberg includes a library of pre-made blocks, giving users many options for creating page layouts. Still, HTML and CSS knowledge is necessary for full customization.

    As an alternative, developers could also create custom Gutenberg blocks either through code or using the latest version of ACF.

    Some handy editor features of Gutenberg include:

    • Easily create reusable blocks, like a blog post CTA
    • Drag and drop an image to automatically create an image block
    • Easily style cover photos for blog posts with overlays and parallax effect
    • Quickly create multi-column content
    • Create tables inside articles

    Gutenberg was initially released in December of 2018. WordPress has worked out many of the kinks over time to boost this editor’s increasing popularity.

    What does Atlanticbt.com use?

    Atlanticbt.com currently uses a flexible band system with ACF. As we are continually testing new layouts with users, we find that ACF is the best system to facilitate developers making frequent updates.

    Furthermore, the bands are styled to be accessible and ADA compliant, brand consistent, and reusable across the website.

    Need help with your WordPress setup?

    If you are unsure of the best editor options for your WordPress site, need help learning how to use your current site, or are interested in upgrading – one of our experts is ready to help you get started. Contact us to set up a free consultation.

  • Choosing the Best Editor: Gutenberg vs. Drupal Layout Builder

    Gutenberg and Drupal Layout Builder are two editors aiming to solve the same challenges. Implementing either of these solutions can enable content editors to publish their own content, build pages quickly, and have the flexibility to adjust pages. No HTML, CSS, or developer knowledge is required.

    With both options, content editors can change the layout of the page without having to change templates in the source code. This makes for an easy and flexible tool to create great-looking pages.

    Depending on your content goals, one option may work better for your Drupal website than the other. Let’s take a look at the key features of each to choose the best editor for your website.

    Gutenberg Editor Pros and Cons

    Gutenberg is the new editor for WordPress 5.0+, but is is also available as a standalone library that easily integrates with Drupal.

    You will no longer have to edit a page as individual form fields that are then output by a template in the source code. Instead, content editors can create and visualize their layouts in one large form field that accepts HTML.

    Content editors assemble pages using blocks (not to be confused with Drupal Block entities, which we’ll discuss later), which are HTML elements like headings, columns, and image galleries.

    Gutenberg Pros:

    • Use quick, visual editing.
    • Gutenberg is integrated with Drupal’s new media library to find and re-use media assets.
    • You don’t have to know HTML or CSS.
    • You can use blocks developed by other open-source developers, or develop your own.

    Gutenberg Cons:

    • Individual instances of blocks and layouts aren’t reusable. That means, if users want more than one page to look the same, they have to manually lay out the content the same way each time.

    Drupal Layout Builder Pros and Cons

    Drupal Layout Builder is a new editing experience in Drupal 8.7.0+ that allows non-developers to change page layouts without changing templates in the theme’s source code. It uses a drag-and-drop interface to customize content on a page or across pages.

    Drupal Layout Builder makes more sense for a traditional Drupal page structure, where users enter data into separate form fields, or build pages using block entities. Block entities are reusable chunks of content that can have fields like the content types.

    Layout Builder allows content editors to mix the data entered into fields and block entities in new ways, which would have previously required coding know-how.

    Drupal Layout Builder Pros

    • You can reorder field output in a more visual way.
    • You can embed Blocks in the main content area in a new way (intermingled with field output).
    • The content is laid out once per page type, and every new page of that type can use that layout. You can also override the layout for individual pages.

    Drupal Layout Builder Cons

    • It only works in main content area of page.
    • It is hard to see what is overridden where.
    • There are no granular permissions for overriding individual pages.
    • Developers or site builders must still build page types and Blocks (as opposed to Gutenberg’s library of user-contributed blocks).

    How to Get the Most Out of Both Options

    With both Drupal Layout Builder and Gutenberg, it’s important to give content editors some guidelines about what components can be used where, and what should be avoided. It’s important to develop strong style guides, training programs, and governance documents to keep the site and message aligned with the website’s brand.

    Taking some time to implement standards and training will help you find the balance between flexibility in layouts and brand compliance.

    Need Help Choosing Between Technologies?

    The best technologies to use for your website will heavily depend on your business goals and types of content you are publishing. Whether you are looking for the right CMS, editor, or hosting solution; Atlantic BT can help you strategize for your next web project. Contact us to talk about your options or schedule a free consultation.

  • How Much Does it Cost to Build & Maintain a Web Application?

    How much does a custom web application cost to build and host? If you are reading this article you are probably trying to figure out if the application you need can be built at an affordable cost. Use this guide as a web application cost calculator. While there are many variables that can impact cost, the key factors generally fall into three categories: 1) size and complexity, 2) refinements and constraints, and 3) hosting and maintenance. 

    Start with the basics: how to determine size and complexity.

    To determine the size and complexity of your application we need to first define what it’s going to do. The specifications for modern software are often defined by ‘user stories’. These user stories are a simple way to describe discrete functionalities your application should provide, from an end-user perspective, and are often used by developers to define and estimate the effort required to build an application. 

    Let’s use Facebook as an example of a web-based application that most people are familiar with. While Facebook may seem relatively simple to use, it is actually a massive web application with many different functionalities for different users. Describing it in user stories would take a very long time, however, if we stick to its most basic functionality we can use it as a good example. Here are some examples of web-based user stories:

    • As a user, I need to register and create a profile
    • As a user, I need to verify my email address to complete my registration
    • As a user, I need to find friends to connect with
    • As a user, I need to request to connect with friends I find
    • As a user, I need to add pictures to my timeline
    • As a user, I need to post status updates to my timeline
    • As a user, I need to browse my feed from other friends
    • As a user, I need to be able to react (like, love, hate, cry, etc) to posts on my feed
    • As a user, I need to be able to comment on posts on my feed
    • As an advertiser, I need to compare the performance of my campaigns
    • As an organizational social media manager, I need to manage roles for my page

    I think you get the idea. Defining this application in user stories would take a very long time, and producing each piece of application functionality takes a lot longer! With the table below we will try to ballpark the relative size of your application using the number of user stories. When you are thinking of your user stories also think of the relative complexity of each user story. For example: ‘As an advertiser, I need to compare the performance of my campaigns.’ is not the same level of effort as ‘As a user, I need to be able to react to posts on my feed.’ 

    We normally apply a ‘level of effort’ attribute to each user story to help scope the application. In development ‘low’ might mean 5-10 hours, ‘medium’ 10 to 20, and ‘hard’ 50 to 100. Any user story more complex than that should be broken down into smaller stories. For example ‘As a user, I need to manage my profile’ is not an acceptable user story and should be broken down into even smaller pieces.

    Micro (< $50,000) Small($50,000-$200,000) Medium($200,000-$1M) Large($1M+)
    10-15 “low effort” user stories 25-50 “low effort” user stories 50-100 “low effort” user stories 200+ “low effort” user stories
    5-10 “medium effort” user stories 10-25 “medium effort” user stories 25-50 “medium effort” user stories 50+ “medium effort” user stories
    1-2 “large effort” user stories 2-5 “large effort” user stories 10-20 “large effort” user stories 25+ “large effort” user stories

    What’s next? Identify application refinements and constraints.

    With any web application development, you must not only consider what your basic functional requirements are, but also include user expectations and behaviors, i.e. usability, and other constraints such as mission criticality and regulatory requirements in your industry.

    Gain a competitive edge by considering user delight.

    With any application you build, you are most likely facing competition in one form or another – in many cases direct competition, but even if not that, you are competing with your users’ expectations of what an efficient and pleasant web interaction feels like. That being the case, you want to refine your application to not only beat the competition but to also be a joy to use. Therefore, you will probably want to pay attention to usability in the design of your application. Software developers often have a basic idea of usability when developing software, but there’s a big difference between a software interface that basically functions and an efficient experience developed by a UI/UX professional. Here are a few classic UX design failures to illustrate the point.

    Good usability is best built into the design and informed by user research. To add a UX professional or team to your software project might add another DevOps chain5-10% (could be more depending on the nature of the application and how important the experience is). That said, this 5-10% can save you much more down the road in avoided rework and enhanced customer satisfaction and retention.

    Criticality, security, and regulatory requirements directly impact application cost.

    Is your application critical to the daily operation and success of your business, or that of others? Does it deal with health and safety or finance? Does it deal with an industry with regulatory requirements, such as PCI or HIPAA? Do federal accessibility requirements apply? If you answer yes to any of these questions, your application needs to be developed with special requirements in mind.

    All of these considerations will increase your budget significantly; not only through the additional requirements, but also due to the need for testing. All well-developed software is tested continually through the development process with both automated testing and human testing and peer review. Software that is extremely sensitive or critical would have additional layers of testing and security added throughout the process. Normal software development would include a 20% cost for testing and security but on critical or extremely critical software that might grow as high as 40% of the total cost.

    Ensure a smooth run with ongoing application support.

    Designing and developing the application is just the start. Once it is built, it must be operated from somewhere by someone (hosting), and all software needs periodic maintenance such as security updates. 

    What about hosting?

    Hosting alone could be an entirely separate article but we’ll take a quick swag at it based on what you found above. For most web applications we recommend a cloud environment for scale and redundancy. Amazon Web Services, Google Cloud Platform, Microsoft Azure to name a few. Processing cycles, storage, bandwidth, backup, disaster recovery, and other details all add to the cost. With a disclaimer on accuracy for your particular application, here are some ballparks below. 

    Micro  Small Medium Large
    < $100 / month $100-$500 / month $1,000-$5,000 / month $5,000-$100,000+ /month

    Don’t forget application management.

    Applications have an ongoing cost of ownership — all software, especially critical applications, need security updates, periodic maintenance, updates to supporting software and technology, and perhaps testing of backup and disaster recovery. To keep your application secure and performing well, these need to be performed as preventive maintenance, not as an emergency response after problems occur.

    To make sure all these happen, you will want some level of application management, whether that’s internal or through a managed service provider like Atlantic BT. Because you have a custom application your best bet in choosing a managed service provider will be a company that can both manage the hosting of your application and the ongoing application development and support. It’s very rare that you “finish” developing your application. Normally, you continue to evolve and improve your application over the course of the time it is in production. Choosing a managed service provider that has a continuous DevOps chain from development through hosting will ensure efficient, continuous operation.

    The costs of managed services around a custom application could range from 5%-20% depending on how well it was built originally and how many features and requests you want to continue to add as the application is used. 

    Are the numbers starting to make sense?

    This web application cost calculator will help guide you in the right direction for a ballpark estimate. More importantly, it tells you how to approach estimation in general for software development and lifecycle maintenance. If you want a more refined estimate, contact us for a free consultation. We can help you with everything from a quick idea over a phone call to structured requirements-gathering and a detailed estimate process. 

  • David Campbell on the Rise of Virtual Reality

    Why try to change the world when you could just scrap it and create a new one? Whether it’s bringing designers together from across the world to collaborate in a shared space in real time, or just turning your cubicle at the office into an extravagant workspace on the international space station, Virtual Reality is going to provide a fundamental platform for developers to take on things that have, in the past, been relegated to their wildest dreams. I sat down with one of ABT’s best developers, David Campbell, to find out what this highly-anticipated technology has in store for the rest of us and why it’s going to change everything.

    “You might be at a really tiny cubicle and it’s kind of miserable and there are people everywhere and it’s not a great environment to work in, but suddenly you’re in a completely different place. This might not even be a realistic place, it could be rather fantastical actually. If you want to work on the moon, that’s fine you can do that. Some people will be in the jungle, some people will be on the moon,” Campbell said while settling in for our interview.

    person in chair looking at computer screens and deep space background
    Via Reddit

    Because emerging VR technology holds seemingly endless opportunities, I wanted to sit down with someone who understands the complexities and has been following industry developments closely since day 1. David Campbell has worked as a .PHP Developer with Atlantic BT for two years and has been writing code for over a decade. He recently attended the East Coast Gaming Conference, which was particularly focused on VR this year, and was willing to sit down and share some of what he finds most interesting.

    Thanks for sitting down with me today David, it’s always a pleasure to work with you on something like this. Speaking of working together—do you think VR will change the way we collaborate on projects like these?

    It depends—I think design is one avenue I really see benefitting, being able to bring designers together in a VR environment and them being able to work on the same piece together. This doesn’t work as well for something like programming code because it’s so text-based, but design…You can imagine bringing a few designers together and them being able to draw in the air, and then step in and work on the same piece at the same time. We’re certainly going to see a lot of interesting stuff come out of the art-world because of the extra freedom that VR allows.

    Volvo_VR
    Via CarBodyDesign

    Do you think it will have similar benefits in a business-oriented setting?

    I think there are a lot of people who are very visual learners, and who think the best in a visual space—certainly the people who work best with a whiteboard—especially when they need to communicate with other people. There’s opportunity for them to be able to host a whiteboard meeting with people from around the world and actually have a medium that they’re all able to draw on and interact with. And I think for a lot of personality types that’s going to be great, it’ll allow people to work how they work the best. There are almost endless collaboration possibilities that come along with VR.

    What limitations do you see as being the most restrictive to programmers developing VR?

    The most engaging VR experiences involve actual interaction in the alternate world, but we’re still limited by having to move around in this one at the same time. Mapping the real world on the fly is a very difficult challenge, it’s a very non-trivial thing, and interpreting our world and how things can and should interact has proven a real hurdle for computing as well. It’s extremely complex and that’s not really going to get easier, we’re just going to get better at it. Also I think a lot of people feel uncomfortable in VR because you’re shut off from the real world—you can’t see your feet, where you’re going, or what’s around you—and that’s something they’re addressing. I think right now the Rift is one of a few [hardware brands] that stands out as not having any camera on the front and that will probably bite them later.

    Rift_VR
    Via RockPaperShotgun

    Is a camera really that important though? I thought the whole idea was to create a virtual reality that users could immerse in fully.

    For instance, the Vive does have a camera on the front that provides some interesting options. At the OS level you can bring up that camera at any time, either full-screen or in a little window off to the side, and I think people are going to appreciate that. I think that could be really essential—having that small window into what’s actually happening around you—and it should increase comfort levels for a lot of people. I think that will probably become the standard at some point, and I think there’s very little reason for most VR headsets not to have a camera on the front because it unlocks some really interesting capabilities.

    If you can bring up that camera and the VR can render things on top of that image it creates a type of indirect AR (Augmented Reality). It’s indirect AR because the image is being captured by a camera and played as a video through the headset, so there will be some lag there. If it’s done right, the lag will be milliseconds…minimal but not nothing. Even things you can’t perceive consciously, often times your brain still notices. Frame rates have proven to be a huge factor in the VR experience, and that holds even more true for AR.

    AR_Translation
    Via Technology.IE

    Do you think that type of indirect AR will make VR hardware more useful in everyday life?

    VR and AR have different applications and this type of indirect AR offers some of the benefits of AR on a VR device; it kind of bridges the gap. Imagine going to some foreign country and being able to look around and actually have it tell you in your language what you’re looking at. If you’re in Brazil you look at a sign and see a bunch of words you don’t understand and you have no clue what it is that you’re looking at. But now that sign suddenly changes to English and you know what it is. And then maybe somebody talks to you in Portuguese and it writes out what they said in English on the screen. We already have technology that is translating stuff on the fly as people say it so there’s a lot of everyday little useful things that we’re going to get out of it. Things like that are why it’s going to make sense for the average consumer to purchase VR hardware, which is when you’re really going to see it start to take off. When Google Glass came out they didn’t have a lot to go along with it, so it kind of gave you very little while making you look like an asshole, and the tradeoff wasn’t quite worth it. When AR starts to use hardware that’s less like a headset and more like a pair of glasses or contact lenses I think people will get more comfortable wearing the technology around.

    Google_Glass
    Via Wikipedia

    What are the biggest issues that you see affecting everyday consumers?

    In the past couple years I’ve seen a bit of the enthusiasm drawn from developers’ faces when I bring up the topic of motion sickness. It’s proved to be more challenging than most expected. Some people, unfortunately, are predisposed to it—if you put them in that kind of environment, the minute they move they feel sick. We have someone here at ABT who said that just looking at a photo in VR made them a little shaky and a little dizzy. It’s a huge range from people who never get sick no matter what you do to them in VR, to people who are immediately queasy and will just throw up at the drop of a hat.

    Why is that and why does it vary so wildly?

    A lot of it comes from acceleration—when you feel like you’re moving in VR your body gets a little confused. The balance that’s dictated by your inner ears, normally if you’re running that balance knows you’re running and you feel like you’re running and your eyes tell you that you’re running. But when you have that disconnect between what you’re eyes are seeing and the information your brain is getting, that’s when people get sick. It’s similar to the reasons why people get car-sick, except in VR it’s kind of the opposite—you’re not moving but your eyes are telling you that you are. There are a lot of people who wouldn’t ever get sick on a real roller coaster but will get sick on a VR roller coaster instantly. It’s that disconnect between what my eyes and body are telling my brain. And it’s something you have to be sensitive about as a developer because it’s a legitimate health issue. It’s kind of funny to talk about, but it’s not fun when you’re that person who’s getting sick and throwing up in your friend’s living room.

    Pumpkin_Upchuck
    Via Unimersiv

    Are the health risks really a cause for concern for the average user?
    The health issues are certainly one of the biggest topics amongst VR developers. Negative side effects of VR, while usually minor, are rather pervasive and unfortunately they’re common enough that developers have had to rethink entire design concepts to make an experience more palatable to a wider audience. I spoke to a number of game devs this year who noted how issues such as motion sickness had really limited what they wanted to do, and to a much greater degree than expected.

    Differences in health mean we may not share quite the same experience too. For instance, there’s the issue of vision which is probably one of the more widespread, albeit less serious, problems users may encounter. Like we saw with 3D, poor eyesight can really hamper, or even ruin, the technology for some. Differences between apps in frame-rate, point-of-view, or effects like motion blur may affect different people in different ways. I can say, as somebody who’s near-sighted, that I’ve had a variety of different experiences with how much blur I have in VR with or without my glasses. In some cases the glasses don’t help much, in others I don’t need them in the first place, and in others my glasses help quite a bit.

    So most of the health risks are associated with vision than it sounds like?

    Well, then you have heart issues. For example, VR certainly adds a whole different layer to horror games, and the ability to startle people is much more effective in VR, so developers may need to be a bit more cautious. The potential to surprise somebody who maybe isn’t in the best of health—to expect them to take such a sudden shock—it’s certainly something that’s going to come up. Eventually we’ll see a story about VR literally scaring somebody to death. It’s tempting to joke about that, but at the same time it’s pretty scary, especially from a developer’s perspective. If I do something wrong, or maybe try to startle somebody a little bit in good fun, there’s a chance I could really hurt someone with that little joke. Maybe you flash some lights a bit too much and cause problems for epillectic users? These aren’t entirely new concerns, but we do need to be even more mindful of such things.

    VR_Horror
    Via Jarty

    And inevitably there will be people who do those things maliciously, there are enough trolls out there that people will have to be careful about the content they get. I think VR will need to develop it’s own standard for describing the types of experiences a piece of VR content will provide—something akin to the ESRB ratings you see on games—something a little more focused on health concerns than age limits. As long as developers are responsible I expect we’ll continue to see VR expand more and more as affordability improves.

    We can expect to learn more as the future of this highly-anticipated technology begins to unfold, but until then I’d love to continue this conversation in the comments section, especially as it pertains to programming. Your thoughts, comments, concerns and suggestions are all appreciated.

  • WordPress – Promote a Post in a Widget

    Here’s a WordPress plugin that will allow you to feature a single item in a widget, until you tell it to automatically expire.

    As taken from the readme file:


    Description

    Simple widget to display (promote) a specific post/page. Provides a list of from all public post types to choose an entry to promote until a specified date. When this “promotion” expires, you can either display a static message or use another post/page instead.


    Installation

    1. Upload the plugin folder to your plugins directory /content/plugins/ directory
    2. Activate the plugin through the ‘Plugins’ menu in WordPress
    3. Add the Widget “Promoted Content” to a sidebar

    Frequently Asked Questions

    What are the options?

    • Title: The displayed widget title – leaving it blank will use the post title (if you override the default, see Hooks)
    • Feature Expires: until what date (YYYY-MM-DD) to show the promoted post; after which fall back to the default
    • Feature Post: choose from the dropdown of public post types to promote
    • Default: display this entry instead after the expiration
    • Trim summary to: if no excerpt is provided, shorten the post content to this number of words

    Note that you can select the most recent post from the dropdown options.

    How can I change the defaults?

    If you don’t specify certain options, the widget will use builtin defaults. Override these with the following hook:
    [php]
    add_filter(‘abt_promo_post_defaults’, ‘YOUR_HOOK’);
    [/php]

    where YOUR_HOOK is a function that takes an array and returns the following settings:

    [php]
    function promo_widget_defaults($settings){
    return array(
    #’title’ => ‘Latest From MY SITE’, // disable to use post title
    ‘display’ => ‘Check out our new video! Credit goes to … <p><a class=”archive” href=”/category/news”>News Archive</a></p>’,
    ‘url’ => ‘#’,
    ‘image’ => ‘<img src=”‘ . get_stylesheet_directory_uri() . ‘/images/g_video.jpg” alt=”Latest from MY SITE”>’,
    );
    }
    [/php]

    What else can I use?

    Two static methods are available for “embedding” the widget in code – basically just the internal processing used by the widget function.

    abtcore_feature_widget::display_promo($args, $before_title, $after_title) 

    which uses the following

    abtcore_feature_widget::get_promo($args) 

    to get either the promoted post or the default. $args will contain an array of the widget options (title, expire, promo, default, trim).

    Function get_promo will return an array of (title, display, url, and image) to display_promo where it gets combined with the defaults from the hook to output the widget HTML.

  • The “Complete” How-to Set Up XAMPP on Windows

    If you run PHP locally on a Windows machine, you’re probably using XAMPP.  By default, you put all your files in the xampp directory (htdocs) to make things work.  However, if want a different directory structure (i.e. under “My Documents”) you can set up domain or subdirectory aliases.

    The following steps are the mostly-complete guide to setting up XAMPP: set alternate folders/domains/subdirectories, enable “missing” extensions, and let it play nicely with VisualStudio’s local IIS.

    1. Download zip version
    2. run setup_xampp.bat to fix directories
    3. to access your local dev like `http://ALIAS.localhost:81/whatever.php`, in apacheconfextrahttpd-vhosts.conf add your custom directories like: (note port 81 from step 7)
      [php htmlscript=”true”]

      <VirtualHost *:81>
      ServerAdmin YOUR@EMAIL.COM
      DocumentRoot “/Relative/Path/To/LocalFiles”
      ServerName ALIAS.localhost
      ServerAlias www.ALIAS.localhost
      ErrorLog “logs/ALIAS.localhost-error.log”
      CustomLog “logs/ALIAS.localhost-access.log” combined

      <Directory “/Relative/Path/To/LocalFiles”>
      Options Indexes FollowSymLinks
      AllowOverride All
      Order allow,deny
      Allow from all
      </Directory>
      </VirtualHost>
      [/php]

       

    4. Update your hosts file (C:WindowsSystem32driversetchosts) accordingly: 127.0.0.1 ALIAS.localhost
      (added bonus: wildcards in hosts file (untested))
    5. OR, instead of #3 and #4, configure subdirectory aliases in xamppapacheconfextrahttpd-userdir.conf, which will let you access your local dev like `http://localhost/ALIAS/whatever.php`
      [php htmlscript=”true”]
      <IfModule alias_module>
      # ===== Description of the following
      Alias /ALIAS “/Relative/Path/To/LocalFiles”
      # Access control, etc
      <Directory “/Relative/Path/To/LocalFiles”>
      AllowOverride All
      Options Indexes FollowSymLinks
      Order allow,deny
      Allow from all
      </Directory>
      </IfModule>
      [/php]
    6. Allow “missing” extensions by uncommenting dll line in xamppphpphp.ini
    7. If also have IIS (VisualStudio) on same computer, you’ll need to change the ports (you can use other numbers)
      1. in xamppapacheconfhttpd.conf — change `Listen *:80` to `Listen: *.81`, `ServerName localhost:80` to `ServerName localhost:81`
      2. in xamppapacheconfextrahttpd-ssl.conf — change `Listen 443` to `Listen 442`
      3. ignore the message in xampp-control that says it started on port 80 (that’s hardcoded)